System and method for caching called number information

ABSTRACT

A call routing system comprises a signaling processor with an internal cache memory. The signaling processor receives a signaling message and searches the cache memory with a called number to determine whether or not the called number has an associated location route number or if a query is required. If the query is required, the signaling processor transfers the query and receives a response that indicates whether or not the called number has the associated location route number. If the called number has the associated location route number, the signaling processor processes the location route number to select a connection. If the called number does not have the associated location route number, the signaling processor processes the called number to select the connection. If the response is received, the signaling processor updates the cache memory to indicate whether or not the called number has the associated location route number.

RELATED APPLICATIONS

This patent application is a continuation of patent application Ser. No.09/794,647, filed Feb. 27, 2001, entitled “SYSTEM AND METHOD FOR CACHINGTOLL FREE NUMBER INFORMATION,” which is hereby incorporated by referenceinto this patent application, and which is a continuation-in-part ofU.S. Pat. No. 6,560,226, entitled “SYSTEM AND METHOD FOR CACHING PORTEDNUMBER INFORMATION” filed Feb. 25, 1999, which is hereby incorporated byreference into this patent application.

FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT

Not Applicable

MICROFICHE APPENDIX

Not Applicable

FIELD OF THE INVENTION

The present invention relates to the field of telecommunications callswitching and transport.

BACKGROUND OF THE INVENTION

Broadband systems provide telecommunications providers with manybenefits, including greater bandwidth, more efficient use of bandwidth,and the ability to integrate voice, data, and video communications.These broadband systems provide callers with increased capabilities atlower costs.

The broadband systems now are implementing systems and methods forconnecting calls to ported numbers. Local number portability (LNP)allows a user to retain its dialed number (DN) when the user changesphysical locations, such as moving from one location associated with afirst signaling processor to another location associated with a secondsignaling processor, when a user changes services, or when a userchanges service providers.

Many switches and other call processors are configured to identify callsthat are assigned to portable switches or other call processors. As usedherein, the terms “portable switch or other call processor”, “portablecall processor”, “portable switch”, or “portable signaling processor”mean a switch or other call processor, a call processor, a switch, or asignaling processor that is open to have a ported dialed number assignedto that switch or other call processor, call processor, switch, orsignaling processor, respectively. A portable switch, a portable callprocessor, or a portable signaling processor may serve one or morenumber plan area and central office code combinations (NPA-NXXs), and atleast one NPA-NXX is open to have a ported dialed number associated withthat NPA-NXX.

The call signaling associated with a call has an NPA-NXX. The calledparty is assigned to a phone number having an NPA-NXX as the first sixdigits of a ten digit phone number. This NPA-NXX can identify asignaling processor that is associated with the called party and can beassigned to a portable signaling processor.

Typically, when a signaling processor receives call signaling for a callhaving an NPA-NXX that may be assigned to a portable signalingprocessor, the signaling processor must query a local number portabilityservice control point (LNP SCP) to determine whether the DN is, in fact,ported. The LNP SCP returns a response containing a location routingnumber (LRN) for the call if the dialed number is ported. If the dialednumber is not ported, the LNP SCP returns a response with the dialednumber digits of the called party.

It is time consuming to make a query to the LNP SCP for each dialednumber that may be ported. Each call is allocated a specified period oftime for processing of the call signaling for determination of a routefor the call, and a query to the LNP SCP consumes part of that time.Ultimately, a congested situation can occur in a signaling processor iftoo many queries are made to the LNP SCP.

Thus, an improved system is needed that will provide LNP information fora signaling processor without always making queries to the LNP SCP. Thepresent system provides the needs associated with improved callprocessing time and reduced queries to an LNP SCP.

SUMMARY OF THE INVENTION

Examples of the invention include a call routing system and its methodof operation. The call routing system comprises a signaling processorand an internal cache memory within the signaling processor. Thesignaling processor receives a first signaling message for a call. Thesignaling processor searches the internal cache memory with a callednumber from the first signaling message to determine one of: 1) thecalled number has an associated location route number, 2) the callednumber does not have the associated location route number, and 3) aquery is required. If the query is required, the signaling processortransfers the query and receives a response that indicates one of: 1)the called number has the associated location route number, and 2) thecalled number does not have the associated location route number. If thecalled number has the associated location route number, the signalingprocessor processes the location route number to select a connection forthe call and transfers a second signaling message indicating theselected connection and the location route number. If the called numberdoes not have the associated location route number, the signalingprocessor processes the called number to select the connection for thecall and transfer the second signaling message indicating the selectedconnection and the called number. If the response is received, thesignaling processor updates the internal cache memory to indicate oneof: 1) the called number has the associated location route number, and2) the called number does not have the associated location route number.

In some examples of the invention, the signaling processor is deletes anentry for the called number in the internal cache memory if an errormessage is received for the call.

In some examples of the invention, the error message comprises aSignaling System Seven Release Message.

In some examples of the invention, the signaling processor deletes anentry for the called number in the internal cache memory if the entryhas not been accessed for a specified time period.

In some examples of the invention, the signaling processor deletes anentry for the called number in the internal cache memory if the entry isolder than other called number entries.

In some examples of the invention, the signaling processor deletes anentry for the called number in the internal cache memory if the entry isless used than other called number entries.

In some examples of the invention, the signaling processor receives thefirst signaling message over an Internet Protocol link.

In some examples of the invention, the second signaling messagecomprises a Signaling System Seven Initial Address Message

In some examples of the invention, the signaling processor is configuredto transfer a control message indicating the selected connection. Thecall routing system further comprises an interworking unit. Theinterworking unit receives a user communication for the call in a packetformat, converts the user communication into a Time Division Multiplex(TDM) format, and transfers the user communication in the TDM formatover the selected connection.

In some examples of the invention, the selected connection comprises aDS0 connection.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a caching system of the present invention.

FIG. 2 is a block diagram of a caching system with an embodiment of aconnection system of the present invention.

FIG. 3 is a functional diagram of a controllable asynchronous transfermode matrix in accordance with the present invention.

FIG. 4 is a functional diagram of a controllable asynchronous transfermode matrix with time division multiplex capability in accordance withthe present invention.

FIG. 5 is a functional diagram of an asynchronous transfer modeinterworking unit for use with a synchronous optical network system inaccordance with the present invention.

FIG. 6 is a functional diagram of an asynchronous transfer modeinterworking unit for use with a synchronous digital hierarchy system inaccordance with the present invention.

FIG. 7 is a block diagram of a signaling processor constructed inaccordance with the present system.

FIG. 8 is a block diagram of a data structure having tables that areused in the signaling processor of FIG. 7.

FIG. 9 is a block diagram of additional tables that are used in thesignaling processor of FIG. 8.

FIG. 10 is a block diagram of additional tables that are used in thesignaling processor of FIG. 8.

FIG. 11 is a block diagram of additional tables that are used in thesignaling processor of FIG. 8.

FIG. 12 is a table diagram of a time division multiplex trunk circuittable used in the signaling processor of FIG. 8.

FIG. 13 is a table diagram of an asynchronous transfer mode trunkcircuit table used in the signaling processor of FIG. 8.

FIG. 14A is a table diagram of a trunk group table used in the signalingprocessor of FIG. 8.

FIG. 14B is a continuation table diagram of the trunk group table ofFIG. 14A.

FIG. 14C is a table diagram of a continuation of the trunk group tableof FIG. 14B.

FIG. 15 is a table diagram of a carrier table used in the signalingprocessor of FIG. 8.

FIG. 16 is a table diagram of an exception table used in the signalingprocessor of FIG. 8.

FIG. 17 is a table diagram of an originating line information table usedin the signaling processor of FIG. 8.

FIG. 18 is a table diagram of an automated number identification tableused in the signaling processor of FIG. 8.

FIG. 19 is a table diagram of a called number screening table used inthe signaling processor of FIG. 8.

FIG. 20 is a table diagram of a called number table used in thesignaling processor of FIG. 8.

FIG. 21 is a table diagram of a day of year table used in the signalingprocessor of FIG. 8.

FIG. 22 is a table diagram of a day of week table used in the signalingprocessor of FIG. 8.

FIG. 23 is a table diagram of a time of day table used in the signalingprocessor of FIG. 8.

FIG. 24 is a table diagram of a time zone table used in the signalingprocessor of FIG. 8.

FIG. 25 is a table diagram of a routing table used in the signalingprocessor of FIG. 8.

FIG. 26 is a table diagram of a trunk group class of service table usedin the signaling processor of FIG. 8.

FIG. 27 is a table diagram of a treatment table used in the signalingprocessor of FIG. 8.

FIG. 28 is a table diagram of an outgoing release table used in thesignaling processor of FIG. 8.

FIG. 29 is a table diagram of a percent control table used in thesignaling processor of FIG. 8.

FIG. 30 is a table diagram of a call rate table used in the signalingprocessor of FIG. 8.

FIG. 31 is a table diagram of a database services table used in thesignaling processor of FIG. 8.

FIG. 32A is a table diagram of a signaling connection control part tableused in the signaling processor of FIG. 8.

FIG. 32B is a continuation table diagram of the signaling connectioncontrol part table of FIG. 32A.

FIG. 32C is a continuation table diagram of the signaling connectioncontrol part table of FIG. 32B.

FIG. 32D is a continuation table diagram of the signaling connectioncontrol part table of FIG. 32C.

FIG. 33 is a table diagram of an intermediate signaling networkidentification table used in the signaling processor of FIG. 8.

FIG. 34 is a table diagram of a transaction capabilities applicationpart table used in the signaling processor of FIG. 8.

FIG. 35 is a table diagram of a external echo canceller table used inthe signaling processor of FIG. 8.

FIG. 36 is a table diagram of an interworking unit used in the signalingprocessor of FIG. 8.

FIG. 37 is a table diagram of a controllable asynchronous transfer modematrix interface table used in the signaling processor of FIG. 8.

FIG. 38 is a table diagram of a controllable asynchronous transfer modematrix table used in the signaling processor of FIG. 8.

FIG. 39A is a table diagram of a site office table used in the signalingprocessor of FIG. 8.

FIG. 39B is a continuation table diagram of the site office table ofFIG. 39A.

FIG. 39C is a continuation table diagram of the site office table ofFIG. 39B.

FIG. 39D is a continuation table diagram of the site office table ofFIG. 39C.

FIG. 40A is a table diagram of an advanced intelligent network eventparameters table used in the signaling processor of FIG. 8.

FIG. 40B is a continuation table diagram of the advanced intelligentnetwork event parameters table of FIG. 40A.

FIG. 41 is a table diagram of a message mapping table used in thesignaling processor of FIG. 8.

FIG. 42 is a block diagram of a caching system with a N00 cache of thepresent invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Telecommunication systems have a number of communication devices inlocal exchange and interexchange environments that interact to providecall services to customers. Both traditional and intelligent network(IN) services and resources are used to process, route, or connect acall to a designated connection.

A call has user communications and call signaling. The usercommunications contain the caller's information, such as a voicecommunication or data communication, and they are transported over aconnection. Call signaling contains information that facilitates callprocessing, and it is communicated over a link. Call signaling, forexample, contains information describing the called number and thecalling number. Examples of call signaling are standardized signaling,such as signaling system #7 (SS7), C7, integrated services digitalnetwork (ISDN), and digital private network signaling system (DPNSS),which are based on ITU recommendation Q.931. A call can be connected toand from communication devices.

Connections are used to transport user communications and other deviceinformation between communication devices and between the elements anddevices of the system. The term “connection” as used herein means thetransmission media used to carry user communications between elements ofthe various telecommunications networks and systems. For example, aconnection could carry a user's voice, computer data, or othercommunication device data. A connection can be associated with eitherin-band communications or out-of-band communications.

Links are used to transport call signaling and control messages. Theterm “link” as used herein means a transmission media used to carry callsignaling and control messages. For example, a link would carry callsignaling or a device control message containing device instructions anddata. A link can carry, for example, out-of-band signaling such as thatused in SS7, C7, ISDN, DPNSS, B-ISDN, GR-303, or could be via local areanetwork (LAN), or data bus call signaling. A link can be, for example,an asynchronous transfer mode (ATM) adaptation layer 5 (AAL5) data link,user datagram protocol/internet protocol (UDP/IP), ethernet, digitalsignal level zero (DS0), or digital signal level one (DS1). In addition,a link, as shown in the figures, can represent a single physical link ormultiple links, such as one link or a combination of links of ISDN, SS7,transmission control protocol/internet protocol (TCP/IP), or some otherdata link. The term “control message” as used herein means a control orsignaling message, a control or signaling instruction, or a control orsignaling signal, whether proprietary or standardized, that conveysinformation from one point to another.

When a signaling processor receives call signaling, it processes thecall signaling to determine connections or other processing options,such as resources or services, for the call. The call signalingtypically contains such information as the calling party number, thecalled party dialed number (DN), the trunk group, the circuitidentification code (CIC), and other information. This information canbe provided through a variety of call signaling formats, such assignaling system #7 (SS7), C7, integrated services digital network(ISDN), and digital private network signaling system (DPNSS), all ofwhich can be processed by the present system. An example of a callsignaling message for SS7 is an initial address message (IAM). The term“signaling processor” includes any switch or other call processor,whether integrated with a connection system or not so integrated, thatreceives call signaling or control messages of any type or format,standardized or private, and processes the call signaling or controlmessage.

Standardized signaling formats provide that ported number informationcan be transmitted with the call signaling. If a dialed number isported, a location routing number (LRN) identifies the signalingprocessor that is assigned to the DN. If a signaling processoridentifies a DN as being ported, and if the signaling processordetermines the LRN for the call, the LRN can be included in the callsignaling.

For example, in SS7 signaling, an IAM has a called party number (CdPN)parameter that contains the DN of the call. If a signaling processordetermines that a DN is ported, a ported number generic addressparameter (GAP) is added to the call signaling, the DN is stored in theported number GAP, and the LRN is stored in the CdPN field. In addition,a forward call indicator (FCI) parameter for ported numbers, such as bitM, is set to specify that the call signaling has been translated forported number identification.

If a switch or call processor determines that the DN is not ported, theDN is stored in the CdPN, the ported number GAP is not added, and theFCI parameter is set to “translated” if a query was made to identifywhether or not the DN is ported. If no query was made, the FCI parameteris not set and specifies “not translated”. Examples of switching andsignaling for ported numbers are discussed in the American NationalStandards Institute (ANSI) technical requirements documents: TechnicalRequirements for Number Portability-Switching Systems and TechnicalRequirements for Number Portability-Database and Global TitleTranslations, the contents of which are incorporated herein byreference.

By processing the information in the call signaling, the signalingprocessor may be able to determine that the called number is assigned toa portable switch, not assigned to a portable switch, or that the numberis ported as exemplified above. As above, if the call signalingidentifies the DN as ported or as not ported, then the call can berouted without further LNP processing. However, if LNP information isnot specified in the call signaling, thereby not identifying that the DNmay be ported or as specifically not ported, and if the signalingprocessor identifies the DN as assigned to a portable signalingprocessor, then a query must be made to obtain the LNP information andto determine if the DN is ported. For SS7 signaling, this LNPinformation may include one or more LNP parameters, such as the DN, theLRN, the ported number GAP, the FCI parameter for calls to portednumbers, other parameters for calls to ported numbers, and/or otherrouting information that may be used for ported and non-calls to portednumbers as identified in the call signaling. One skilled in the art willappreciate that other routing and LNP parameters are included as LNPinformation for other signaling types.

In addition to LNP, toll free 800 or N00 numbers need translation todestination numbers that can handle calls. After a caller dials a N00number, the signaling processor receives the call signaling andtransmits a query to a N00 SCP for a N00 number translation. The N00 SCPtranslates the N00 number to a destination number that handles the calland replies to the signaling processor with the translated number. TheN00 number may have multiple destinations that handle calls for the N00number. The N00 SCP performs the translation based on various criteriasuch as time of day, date, and originating number. For example, if acaller dials 1-800-FLOWERS at night, the N00 SCP translates the 800number using time of day to a destination number for a west coast flowershop that is open later than an east coast flower shop. In anotherexample, if a west coast caller dials 1-800-FLOWERS, the N00 SCPtranslates the 800 number using originating number to a destinationnumber for a west coast flower shop that handles west coast calls.

The system of the present invention provides a memory cache, referred toherein as the LNP cache, in which local number portability (LNP)information is stored. The LNP cache allows a signaling processor tostore and to quickly access the LNP information that is in the cache,rather than requiring the switch or other signaling processor to queryan LNP SCP for every call that is assigned to a portable signalingprocessor. The system of the present invention can access the LNP cacheto determine if the information it seeks is available. If the signalingprocessor determines that the LNP information it seeks is not accessiblefrom the LNP cache, it then can query an LNP SCP if necessary.

It will be appreciated that the LNP cache provides a signaling processorquick access to LNP information. This allows the signaling processor tomore quickly process calls and the call signaling associated with thecalls and to determine routes, processing options, and connections forthe calls. In addition, because fewer queries are made to the LNP SCP, acost savings is realized for the owner of the signaling processor.Moreover, link usage for access to communication devices is reduced dueto the reduced query/response traffic to and from the LNP SCP.

FIG. 1 illustrates an exemplary embodiment of a call connecting systemof the present invention. The call connecting system 102 comprises acall routing system 104 having a signaling processor 106, a local numberportability (LNP) cache 108, and a connection system 110, a local numberportability service control point (LNP SCP) 112, and communicationdevices 114-118. The connection system 110 is connected to thecommunication devices 114-118 by the connections 120-124, respectively.

The call routing system 104 receives call signaling and usercommunications. The call routing system 104 processes the call signalingto determine routes for the user communications and to determine newcall signaling. The routing system 104 makes connections for usercommunications and transmits new call signaling to the communicationdevices.

The signaling processor 106 is a signaling platform that can receive,process, and generate call signaling. Based on the processed callsignaling, the signaling processor 106 selects processing options suchas services or resources for the user communications and generates andtransmits control messages that identify the communication device,processing option, service, and/or resource that is to be used. Thesignaling processor 106 also selects other processing options, such asvirtual connections and circuit-based connections for call routing, andgenerates and transports control messages that identify the selectedconnections. The signaling processor 106 can process various forms ofsignaling, including ISDN, GR-303, B-ISDN, SS7, and C7. The signalingprocessor 106 uses routing logic and routing tables to process the callsignaling. The signaling processor 106 can be identified as acommunication device.

The signaling processor 106 determines, based on the call signaling,whether a number may be a ported number. The signaling processor 106processes the call signaling to determine if the NPA-NXX in the CdPNbelongs to a portable signaling processor. In addition, the signalingprocessor 106 determines if a ported number parameter (PNP) is present.A PNP identifies the call as connecting to a ported DN. Examples of aPNP are one or both of the FCI parameter and the ported number GAP.

The signaling processor 106 determines whether the LNP cache 108 shouldbe accessed to search for the LNP information in the LNP cache, such asan LRN, if existent, and/or whether a query should be sent to the LNPSCP 112 to obtain the LNP information, such as an LRN, if existent. Thesignaling processor 106 determines whether the information received as aresult of a search from the LNP cache 108 or received in a response fromthe LNP SCP 112 contains an LRN, a DN, or other LNP information andprocesses the information to determine processing options andconnections for calls.

The LNP cache 108 contains LNP information such as one or more LNPparameters and other call signaling parameters. LNP parameters mayinclude the DN, the LRN, the ported number GAP, the FCI parameter forcalls to ported numbers, other parameters for calls to ported numbers,and/or other routing information that may be used for ported andnon-calls to ported numbers as identified in the call signaling.

The LNP information can be arranged in any convenient format. Forexample, the LNP information can be placed in a database table as LNPinformation entries in volatile memory or non-volatile memory.Preferably, the LNP information in the LNP cache 108 is located innon-volatile memory and includes LNP information elements, such as theDN, a number that is the same as the DN, the LRN, the first date the DNor LRN was stored and/or used, the number of uses for a particular setof LNP information, and the number of attempts to access any of the LNPinformation, such as the number of attempts to access a DN. Moreinformation elements, fewer information elements, or other informationelements may be used. For example, the LNP information may include onlyDNs and LRNs.

The LNP information can be placed in and or updated in the LNP cache 108on a call-by-call basis. Also, the LNP information can be pre-loaded tothe LNP cache 108, loaded to the LNP cache, or updated at any time froma management system or another system.

The LNP information can be organized in other formats. For example, theLNP information can be located in memory registers.

The LNP cache 108 can be configured to handle N00 numbers, non-N00numbers, or both. Thus, in a first configuration, the LNP cache 108 mayhave a plain old telephone service (POTS) DN entry and a correspondingLRN entry. In a second configuration, the LNP cache 108 may have an N00DN entry, a POTS translated number entry that corresponds to the N00 DNentry, and an LRN entry. In a third configuration, the LNP cache 108 mayhave an entry that can handle either a POTS DN or an N00 DN and an entryfor the corresponding LRN. In a fourth configuration, the LNP cache 108may have an N00 DN entry and a corresponding LRN entry.

Processing efficiencies may be gained when N00 numbers are handled by aseparate LNP cache where N00 numbers have multiple possible destinationand require greater processing. Preferably, both N00 numbers and non-N00numbers are handled by a single LNP cache 108.

The LNP cache 108 can be configured to have DN entries that havecorresponding LRN entries. The LNP cache 108 also can have a secondconfiguration that includes DN entries that have a corresponding entrythat is the same number as the DN, a corresponding blank entry, oranother non-LRN identifier entry. This second configuration allows theLNP cache 108 to include numbers for which a query for a DN haspreviously been made to the LNP SCP 112 and a response from the LNP SCPindicated that the DN did not have a corresponding LRN, and wastherefore not ported. In this second configuration, additional time andprocessing is saved by not having to query the LNP SCP 112 for numbersthat are not ported. In this second configuration, DN entries that havea corresponding entry that is the same number as the DN, a correspondingblank entry, or another non-LRN identifier entry may be loaded fromanother source, such as a management system.

Thus, in a first configuration, the LNP cache 108 is configured as atable with a entry for the DN and a corresponding entry for an LRN. Thisconfiguration does not include listings for DNs that do not havecorresponding LRNs. This configuration does not include listings for DNsthat have a corresponding entry with the same number as the DN. In thisconfiguration, if a match is not found for the DN, a query can be sentto the LNP SCP 112.

In a second configuration, the LNP cache 108 is configured as a tablewith an entry for a DN and a corresponding second entry that can haveeither a corresponding LRN or the same number as the DN. In this secondconfiguration, if a match is found for the DN, either an LRN or the samenumber as the DN will be returned.

If the same number as the DN is returned, in one configuration thissignifies that a query previously had been sent to the LNP SCP 112, andthe LNP SCP responded with the DN for the call and not an LRN. This DNwas then stored in the LNP cache 108 so that if a match was found laterfor that DN in the LNP cache and the corresponding entry was the samenumber as the DN, then a query would not need to be sent to the LNP SCP112. In this example, the same number as the DN would be sent to thesignaling processor 106, the signaling processor would not query the LNPSCP 112, and the signaling processor would process the same number asthe DN to determine a route for the call. In addition, in otherconfigurations, entries with DNs that have corresponding entries withthe same numbers as the DNs can be pre-loaded in the table.

In this configuration, if a match is not found for the DN, the LNP cache108 can be configured to respond to the signaling processor with acontrol message signifying that no match was located, such as a blankfield, a control code, an error code, or some other response. In thisconfiguration, if a match is not found for the DN, a query can be sentto the LNP SCP 112.

In a third configuration, the LNP cache 108 is configured as a tablewith an entry for a DN and a corresponding second entry that can have acorresponding LRN or a blank. In this third configuration, if a match isfound for the DN, either an LRN or a blank will be returned.

In one configuration, if the blank is returned, this signifies that aquery previously had been sent to the LNP SCP 112, and the LNP SCPresponded with the DN for the call and not an LRN. This DN was thenstored in the LNP cache 108 so that if a match was found later for thatDN in the LNP cache and the corresponding entry was a blank, then aquery would not need to be sent to the LNP SCP 112. In this example, theblank would be sent to the signaling processor 106, the signalingprocessor would not query the LNP SCP 112, and the signaling processorwould process the DN to determine a route for the call. Other items,including control message, corresponding to the DN may be entries in theLNP cache 108 to signify that the DN previously had been determined tonot have an LRN. In addition, in other configurations, entries with DNsthat have corresponding entries with blanks can be pre-loaded in thetable.

In this configuration, if a match is not found for the DN, the LNP cache108 can be configured to respond to the signaling processor with acontrol message signifying that no match was located, such as the DN, acontrol code, an error code, or some other response. In thisconfiguration, if a match is not found for the DN, a query can be sentto the LNP SCP 112.

One or multiple search criteria may be used to locate information in thetable, including indices for the table lookup, examples of which are theLNP information specified above. Preferably, the primary index for thesearch criteria is based on the DN. However, other search criteria andother indices may be used.

The table size can be defined by user parameters and specified on anindividual basis at an optimization level to optimize the processing bythe signaling processor 106, or other signaling processor, with which itis associated. The optimization can be specified by determining the sizeof the LNP cache with a total number of entries and the processing timethat it takes to traverse the total number of entries. For example, fora specified signaling processor, the optimization level may occur at500,000 entries or higher. Other signaling processors may haveoptimization level occurring at 25,000 entries or lower. Of course, theoptimization level may occur there between. The optimization level musttake into account the time limits needed to completely process a callfor call routing. In one example, the present invention has anoptimization level of 100,000 entries.

In addition, the table can have maintenance parameters, such as a userdefinable refresh parameters so that if a set of LNP informationelements is not accessed within a specified time or under specifiedconditions, that set of LNP information elements are deleted. Forexample, the LNP cache can be configured so that if a set of LNPinformation elements is not accessed within the last 30 days, it wouldbe deleted. The time period may be any configurable time, including 15or fewer days, 30 days, 45 days, 60 days, or 120 or more days. Othertime increments may be used.

Also, if another specified condition, such as error condition, isassociated with the LNP information from the signaling processor 106 oranother signaling processor, the LNP information can be deleted. Forexample, if a terminating signaling processor transmits an error messageto the signaling processor 106 specifying that the LNP information inthe call signaling had an error, such as the specified LRN does notbelong to the specified DN, then the designated LNP information elementscan be deleted. An example of such a message is an SS7 Release messagehaving a cause code value of 26. Other examples include other messages,messages having other error indicators, or messages having provisioninginformation.

A manual dump of the LNP information elements can be made as well. Thiscan occur for a set of information elements of for the whole table.

The table can be configured to update itself if specified updatecriteria are met. For example, if an update criteria is met, such as anerror condition received from another signaling processor, the entrieswhich pertain to the update criteria, in this case the error condition,are updated. The requisite information is obtained from the LNP SCP 110,and the new LNP information is overlaid on the old LNP information. Inaddition, old LNP information can be updated at any time.

The LNP cache 108 can be configured to make a query in thebackground-mode of the processing, and the response also would beprocessed in the background-mode. Preferably, this occurs in less than500 milli-seconds.

The LNP cache 108 can be configured so that when the table becomes fulland new LNP information elements are to be placed in the table, thetable deletes old LNP information elements or expands the table.Preferably, if the optimization level of the table is defined ascontaining a specified number of entries with LNP information elements,old LNP information elements will be deleted based on maintenancecriteria, such as not having been accessed for a specified period oftime, having been accessed the least number of times, or having beenplaced in the table and/or accessed at a time period longer than otherLNP information elements.

The LNP cache 108 has processing logic that handles out of syncconditions that may occur between the LNP cache database table andexternal databases from which LNP information may be received or towhich LNP information may be transmitted. In addition, the processinglogic can be configured to delete the whole table due to data corruptionor to delete individual entries or ranges of entries, such as by theNPA-NXX or the LRN. If a table is deleted, the processing logic willreload the table from a redundancy backup database table. The backupdatabase table can be stored in the signaling processor or a managementsystem, such as the call process control system (CPCS) described below.

One or more of the DN, the LRN, number of attempts, accesses, and usageof the LNP information are collected as performance data and used foraccounting and maintenance purposes. The performance data can be queriedand used for trouble shooting to determine where and when errors occur.In addition, the performance data is compiled and transmitted asaccounting data. Thus, for example, a user can determine if money isbeing saved by using the LNP cache 108 and the amount of the savings.Also, the accounting data can be used for marketing purposes and theperformance data can be used for congestion control, each to determinequantities of traffic for specified DNs.

Preferably, the LNP cache 108 has an associated accounting system and amaintenance system. The accounting system compiles the performance data.The historical view of the performance data can be reviewed, and billingand other accounting applications used to process the performance datato determine costs and cost savings associated with access to the LNPcache 108 on a call-by-call basis and to determine costs and costsavings for call connections.

The maintenance system is used to review error conditions, exceptionconditions, and completed accesses to the LNP cache 108. The maintenancesystem provides access to control the refresh parameters, updateconditions, and other maintenance conditions for the LNP cache 108.

The accounting and maintenance systems can be co-located with the LNPcache 108 or in the signaling processor 106 or management system, suchas the below described CPCS. Location of the accounting system and themaintenance system for the LNP cache 108 in the CPCS is preferred.

The LNP cache 108 can be configured to be accessed directly from thesignaling processor 106. In this configuration, the signaling processor106 searches the LNP cache 108 through a direct access to obtain the LNPinformation. The signaling processor 106 reads the result of the search,if existent, from the LNP cache table 108. This configuration ispreferred.

Alternately, the LNP cache 108 can be configured so that the signalingprocessor queries the LNP cache 108 as a database table. The LNP cache108 performs a lookup of the table based on the search criteria, such asan index, provided in the query from the signaling processor 106. TheLNP cache 108 transmits/sends the results to the signaling processor 106as a response. Alternately, the LNP cache 108 can write the results to amemory location in the signaling processor 106 or to a locationdesignated for the response. It will be appreciated that these twoconfigurations are similar and differ merely by verbiage of one skilledin the art. As used herein, the term “access”, the term “search”, andthe term “query” can be used as alternates for each other, and the terms“result of a search” or “search result” and the term “response” can beused as alternates for each other.

The connection system 110 makes connections for calls. The connectionsystem 110 may interwork user communications to connections and/orswitch user communications between connections. Preferably, interworkingoccurs between time division multiplex (TDM) connections andasynchronous transfer mode (ATM) connections. Preferably, switchingoccurs between ATM connections and other ATM connections and between TDMconnections and other TDM connections. The connection system 110establishes connections for user communications in response to controlmessages from the signaling processor 106. The connection system 110 canbe identified as one or more communication devices.

The LNP SCP 112 is a database that contains ported number information.The LNP SCP 112 responds to LNP queries made from switches or other callprocessors. The LNP SCP 112 responds with ported number information. TheLNP SCP 112 responds with an LRN for dialed numbers that have beenported or with the actual dialed number digits, and not an LRN, fordialed numbers that are not ported. The LNP SCP 112 can be identified asa communication device.

The communication devices 114-118 comprise other call routing systemssuch as the call routing system 104, a connection system such as theconnection system 110, customer premises equipment (CPE), a serviceplatform, a signaling processor, a remote digital terminal, a crossconnect, an interworking unit, an ATM gateway, or any other devicecapable of initiating, handling, or terminating a call. CPE can be, forexample, a telephone, a computer, a facsimile machine, or a privatebranch exchange. A service platform can be, for example, any enhancedcomputer platform that is capable of processing calls. A remote digitalterminal is a device that concentrates analog twisted pairs fromtelephones and other like devices and converts the analog signals to adigital format known as GR-303. An ATM gateway is a device that changesATM cell header virtual path/virtual channel (VP/VC) identifiers.

The system of FIG. 1 operates as follows. In a first example, LNPinformation entries are loaded and existent in the LNP cache 108 eitherfrom prior queries to the LNP SCP 112 or from being pre-loaded. Thecommunication device 114 transmits call signaling to the signalingprocessor 106 and user communications to the connection system 110.

The signaling processor 106 receives the call signaling and processesthe call signaling. The signaling processor 106 determines that thecalled party is associated with a portable signaling processor.

The signaling processor 106 queries the LNP cache 108 to determine ifthe DN of the call is present in the LNP cache. In this example, thesignaling processor 106 designates the DN of the call as the searchcriteria. The LNP cache 108 performs the lookup into the database tableusing the DN as the main lookup index. The LNP cache 108 determines thatthe DN is present in the LNP information and that the DN has anassociated LNP information element, which is an LRN.

The LNP cache 108 responds to the query with the LRN. Also, the LNPcache 108 collects performance data of the query, including the DN, theLRN, the date and time of the query, any operation measures (OMs), andpeg counts. The performance data is stored and/or compiled for theaccounting system and the maintenance system.

The signaling processor 106 uses the LRN from the response to furtherprocess the call to determine one or more connections for the call. Thesignaling processor 106 determines that the call is to be transmitted tothe communication device 116 and selects the connection 122 to thecommunication device.

The signaling processor 106 transmits a control message to theconnection system 110 designating the selected connection. Theconnection system 110 receives the user communications and the controlmessage and, in response to the control message, connects the usercommunications to the selected connection 122.

Because the signaling processor 106 did not have to build and transmit aquery to the LNP SCP 112, and the LNP SCP did not have to build andtransmit a response to the signaling processor, significant time andprocessing resources are saved. In addition, neither the signalingprocessor 106 nor the LNP SCP 112 had to tear down the response orquery, respectively, to process the call signaling parameters therein.This saves additional time and processing resources.

Also, because the LNP cache 108 has memory locations within thesignaling processor 106, the signaling processor merely has to accessthe LNP cache, and special call signaling queries and special callsignaling responses, such as those required for communication with theLNP SCP 112, do not have to be built or processed. This results inadditional saved time and processing resources.

In another example, the LNP cache 108 is configured as a table with anentry for the DN and a corresponding entry for an LRN. Thisconfiguration does not include listings for DNs that do not havecorresponding LRNs. This configuration does not include listings for DNsthat have a corresponding entry with the same number as the DN.

The signaling processor 106 receives call signaling for the call. Thecommunication device 116 transmits user communications for the call tothe connection system 110.

The signaling processor 106 processes the call signaling. The signalingprocessor 106 determines that the called party is associated with aportable signaling processor.

The signaling processor 106 queries the LNP cache 108 to determine ifthe DN of the call is present in the LNP cache. In this example, thesignaling processor 106 designates the DN of the call as the searchcriteria. The LNP cache 108 performs a search of the table using the DNas the search criteria. The LNP cache 108 does not locate a match forthe search criteria in the LNP information.

In this example, the LNP cache 108 is configured to respond to the querywith a message signifying that a DN match was not identified. Thisresponse can return the DN, thereby identifying the query as not findinga DN match. Alternately, the response can be a specific control messagethat specifies that a DN match was not found. In this example, the LNPcache 108 writes the DN to the signaling processor 106.

Also, the LNP cache 108 collects performance data of the query,including the DN, the date of the query, any OMs, and peg counts. Theperformance data is stored and/or compiled for the accounting system andthe maintenance system.

The signaling processor 106 transmits a query to the LNP SCP 112. TheLNP SCP 112 processes the query to determine if the DN exists in its LNPinformation. The LNP SCP 112 will return the LRN if the DN is located,or it will return the DN if no match is located. In this example, theLNP SCP 112 responds with an LRN for the call.

The signaling processor 106 uses the LRN from the response to furtherprocess the call to determine one or more connections for the call. Thesignaling processor 106 determines that the call is to be transmitted tothe communication device 114 and selects the connection 120 to thecommunication device.

The signaling processor 106 updates the LNP information in the LNP cache108 with the LNP information received from the LNP SCP 112. Also, thesignaling processor 106 transmits a control message to the connectionsystem 110 designating the selected connection 120. It will beappreciated that the update to the LNP information in the LNP cache 108and the transmission of the control message can occur in any order orconcurrently.

In addition, the LNP cache 108 collects performance data of the updatefrom the signaling processor 106, including the DN, the LRN, the date ofthe query, any OMs, and peg counts. The performance data is storedand/or compiled for the accounting system and the maintenance system.

The connection system 110 receives the user communications and thecontrol message. In response to the control message, the connectionsystem 110 connects the user communications to the selected connection120.

In another example, the LNP cache 108 is configured as a table with anentry for a DN. A second entry can be configured either to have acorresponding LRN or to have the same number as the DN, a blank, or someother non-LRN value or message. In this example, the second entry isconfigured to have a corresponding LRN or the same number as the DN,depending on whether the number is ported or not ported, respectively.In this second configuration, if a match is found for the DN, either anLRN or the same number as the DN will be returned. If the same number asthe DN is returned, this signifies that a query previously had been sentto the LNP SCP 112, and the LNP SCP responded with the DN for the calland not an LRN. This DN was then stored in the LNP cache 108 so that ifa match was found later for that DN in the LNP cache and thecorresponding entry was the same number as the DN, then a query wouldnot need to be sent to the LNP SCP 112. In this example, if a match isnot found in the table for the DN, then the LNP cache 108 responds witha control message signifying that a match was not located.

In this example, the same number as the DN would be sent to thesignaling processor 106, the signaling processor would not query the LNPSCP 112, and the signaling processor would process the same number asthe DN to determine a route for the call. In this configuration, if amatch is not found for the DN, a query can be sent to the LNP SCP 112.

The signaling processor 106 receives call signaling for the call, andthe communication device 116 transmits user communications for the callto the connection system 110. The signaling processor 106 processes thecall signaling and determines that the called party may be associatedwith a portable signaling processor.

The signaling processor 106 queries the LNP cache 108 to determine ifthe DN of the call is present in the LNP cache 108. In this example, thesignaling processor 106 designates the DN of the call as the searchcriteria. The LNP cache 108 performs a search of the table using the DNas the search criteria. The LNP cache 108 locates a match for the searchcriteria in the LNP information.

In this example, the LNP cache 108 matches the DN search criteria to aDN entry in the table. The DN entry in the table has a correspondingentry that is the same number as the DN search criteria. The LNP cache108 responds to the signaling processor 106 with the same number as theDN search criteria.

Also, the LNP cache 108 collects performance data of the query,including the DN, the date of the query, any OMs, and peg counts. Theperformance data is stored and/or compiled for the accounting system andthe maintenance system.

The signaling processor 106 uses the response from the LNP cache 108 tofurther process the call to determine one or more connections for thecall. The signaling processor 106 determines that the call is to betransmitted to the communication device 114 and selects the connection120 to the communication device.

The connection system 110 receives the user communications and thecontrol message. In response to the control message, the connectionsystem 110 connects the user communications to the selected connection120.

In another example, LNP information entries are loaded and existent inthe LNP cache 108 either from prior queries to the LNP SCP 112 and/orfrom being pre-loaded. The communication device 118 transmits callsignaling to the signaling processor 106 and user communications to theconnection system 110.

The signaling processor 106 receives the call signaling and processesthe call signaling. The signaling processor 106 determines that thecalled party is associated with a portable signaling processor.

The signaling processor 106 accesses the LNP cache 108 to determine ifthe DN of the call is present in the LNP information of the LNP cache.In this example, the signaling processor 106 uses the DN of the call asthe main search criteria to search the LNP cache 108. The signalingprocessor 106 searches the LNP information of the LNP cache 108 andlocates a match for the DN search criteria.

The signaling processor 106 reads the search results from the LNP cache108. In this example, the signaling processor 106 reads from the LNPcache 108 the LRN and any other LNP information elements in the LNPinformation entry containing the DN and the LRN. Also, the LNP cache 108collects performance data of the access and search, including the DN,the LRN, the date of the query, any OMs, and peg counts. The performancedata is stored and/or compiled for the accounting system and themaintenance system.

The signaling processor 106 uses the LRN to further process the call todetermine one or more connections for the call. The signaling processor106 determines that the call is to be transmitted to the communicationdevice 116 and selects the connection 122 to the communication device.

The signaling processor 106 transmits a control message to theconnection system 110 designating the selected connection. Theconnection system 110 receives the user communications and the controlmessage and, in response to the control message, connects the usercommunications to the selected connection 122.

The signaling processor 106 also transmits new call signaling to thecommunication device 116. The communication device 116 receives andprocesses the new call signaling. The communication device 116determines that the DN is not assigned to that communication device andthat there is an error condition. The communication device 116 transmitsadditional call signaling back to the signaling processor 106 specifyingthe error condition.

The signaling processor 106 deletes the LNP information entries in theLNP cache 108 for the requisite DN and LRN that are in error. Thesignaling processor 106 transmits a query to the LNP SCP 112 identifyingthe DN and requesting the LNP information.

The LNP SCP 112 processes the query to determine if the search criteriamatches a DN in its LNP information. The LNP SCP 112 will return an LRNif a match to the DN is located, or it will return the DN if no match islocated. In this example, the LNP SCP 112 responds with an LRN.

The signaling processor 106 receives and processes the response from theLNP SCP 112. If the LRN received from the LNP SCP 112 is different fromthe LRN in the LNP Cache 108, then the signaling processor 106 writesthe LNP information received from the response to the LNP cache 108,thereby updating the entry in the LNP cache 108 for that DN. If the LRNreceived from the LNP SCP 112 is the same as the LRN in the LNP cache108, then an error condition exists, The signaling processor 106 can beconfigured to release the call upon this error condition.

In this example, the LRN received from the LNP SCP 112 is different fromthe LRN in the LNP Cache 108. Therefore, the signaling processor 106updates the LNP cache 108.

In addition, the LNP cache 108 collects the performance data for theupdate and stores and/or compiles the data in the accounting system andthe maintenance system.

Note that in other embodiments, the signaling processor 106 sends theLNP information to the LNP cache 108. The LNP cache 108 then updates theentry for the DN.

In yet another example, and only this example, the signaling processor106 is configured so that it is not able to process or route calls thatare identified as exception traffic. In this example, exception trafficmeans that the call is to be processed by another signaling processor.This may occur when the call signaling is to be processed by a signalingprocessor having an enhanced service processor/platform (ESP), such as avoice response unit or a media response unit.

The signaling processor 106 receives call signaling for the call. Theconnection system 110 receives user communications for the call.

The signaling processor 106 processes the call signaling. The signalingprocessor 106 determines that the call is an exception call.

The signaling processor 106 determines that the call is to be routed tothe communication device 114 for further processing. In this example,the communication device 114 has an ESP. The signaling processor 106transmits new call signaling to the communication device 114 and acontrol message to the connection system 110 designating the connection120 as the selected connection. The connection system receives thecontrol message and, in response thereto, connects the usercommunications over the selected connection 120.

In a further example, the communication device 116 transmits callsignaling to the signaling processor 106 and transports usercommunications to the connection system 110. The signaling processor 106processes the call signaling. The signaling processor 106 determinesthat the call signaling parameters have a PNP, and the DN is ported. Inthis example, the PNP is both the existence of the FCI parameter, whichis set to “translated”, and a ported number GAP. The CdPN has the LRNfor the call, and the ported number GAP has the DN for the call.

The signaling processor 106 processes the LRN, as well as the otherparameters in the call signaling, including the DN from the portednumber GAP, to determine routing for the call. The signaling processor106 determines that the communication device 114 is to receive the calland selects the connection 120 over which the user communications willbe transported. The signaling processor 106 transmits a control messageto the connection system 110 designating the selected connection 120. Inaddition, the signaling processor 106 builds and transmits new callsignaling to the communication device 114 over a link.

The connection system 110 receives the user communications and thecontrol message. In response to the control message, the connectionsystem 110 connects the user communications to the selected connection120.

It will be appreciated that, in this example, the signaling processor106 received LNP information in the call signaling, and the signalingprocessor alternately may be configured to send the LNP information tothe LNP cache 108. Because the signaling processor 106 received in thecall signaling a DN, an LRN for the DN, and other LNP informationelements, the signaling processor can provide this information to theLNP cache 108 so that the LNP cache can update the database tables. Inaddition, the LNP cache 108 can be configured to accept this update LNPinformation, overlay the update LNP information over the old LNPinformation, synchronize the update LNP information with the old LNPinformation if an error condition is produced by the two pieces ofinformation being out of sync, query the LNP SCP 112 if an errorcondition occurs if the update LNP information does not match with theold LNP information, or provide other maintenance on the information.

In still another example, the communication device 118 transmits callsignaling to the signaling processor 106 and transports usercommunications to the connection system 110. The signaling processor 106processes the call signaling. The signaling processor 106 determinesthat the call signaling parameters do not have a PNP, and the DN is notassigned to a portable switch to other call processor. In this example,the CdPN has the DN for the call.

The signaling processor 106 processes the DN, as well as the otherparameters in the call signaling, to determine routing for the call. Thesignaling processor 106 determines that the communication device 116 isto receive the call and selects the connection 122 over which the usercommunications will be transported. The signaling processor 106transmits a control message to the connection system 110 designating theselected connection 122. In addition, the signaling processor 106 buildsand transmits new call signaling to the communication device 116 over alink.

The connection system 110 receives the user communications and thecontrol message. In response to the control message, the connectionsystem 110 connects the user communications to the selected connection122.

In a further example, the LNP cache 108 has collected performance datafor multiple queries and responses. The LNP cache 108 formats theperformance data so that the cost and cost savings associated with theoperation and performance of the LNP cache can be determined. In thisexample, the formatted performance data includes the attempts made todetermine an LRN for a DN, the matches made for a DN and an LRN, theusage for a DN, the usage for an LRN, and the dates and times that theattempts and usages were made. This accounting information is accessedand transmitted by the signaling processor 106 to a communication device(not shown). In this example, the communication device is an accountingsystem which processes the performance data to determine the costassociated with designated calls, designated DNs, designated LRNs,queries to the LNP cache 108, and queries made and queries not made tothe LNP SCP 112.

In still another example, the LNP cache 108 has collected performancedata for multiple accesses to the LNP information. The LNP cache 108locates performance data in a formatted table. The formatted performancedata includes the LNP information for entries including the DN, the LRN,the attempts and usage for the DNs and the LRNs, and the dates and timesthat the attempts and usages were made. An error condition occurs in theprocessing of LNP information obtained form the LNP cache 108. A useraccesses the performance data to determine the error in the LNPinformation. The error is located and deleted. The correct LNPinformation is obtained by the signaling processor 106 and written tothe LNP cache 108 for location in the table.

In another example, the LNP cache 108 receives LNP information from thesignaling processor 106. The LNP information is to be put in the table.However, the table is full based on the number of entries allocated tothe table. In this example, the table is allocated 50,000 entries. TheLNP cache 108 performs maintenance on the table and determines the entryof LNP information that is least used based on the number of attemptsfor the DN of that entry. The LNP cache 108 deletes the least used entryand adds the entry for the new LNP information.

In a further example, the LNP cache 108 receives LNP information fromthe signaling processor 106. The LNP information is to be put in thetable. However, the table is full, based on the number of entriesspecified in the optimization level for the table. In this example, theoptimization level is specified at 100,000 entries. The LNP cache 108performs maintenance on the table and determines the first entry of LNPinformation that was stored in the table based on chronologically timedentries. The LNP cache 108 deletes the first entry and adds the entryfor the new LNP information.

In another example, the LNP cache 108 performs self maintenance on thetable. In this example, the table is allocated 200,000 entries. The LNPcache 108 determines that some entries of LNP information have not beenaccessed within the configured period of time. In this example, theconfigured period of time is 45 days. The LNP cache 108 deletes theentries.

FIG. 2 illustrates an exemplary embodiment of a call connecting systemof the present invention with an embodiment of a connection system. Theconnecting system 102A of FIG. 2 comprises, in addition to the elementsof FIG. 1, an interworking unit 202, an asynchronous transfer mode (ATM)matrix 204, and a communication device 206. The interworking unit 202 isconnected to the ATM matrix 204 by a connection 208 and to thecommunication device 206 by a connection 210. It will be appreciatedthat other embodiments are possible.

It will be appreciated that other communication devices may be presentin the connection system 110 of FIG. 2. For example, the connectionsystem of FIG. 2 may have a TDM controllable matrix that makes TDMconnections to other TDM connections in response to a control messagefrom the signaling processor 106 identifying the connections. Moreover,the connection system 110 of FIG. 2 may have only an interworking unit,only an ATM matrix, only a TDM matrix, or any combination of theinterworking unit, the ATM matrix, and the TDM matrix.

The interworking unit 202 interworks traffic between various protocols.Preferably, the interworking unit 202 interworks between ATM traffic andnon-ATM traffic, such as TDM traffic. The interworking unit 202 operatesin accordance with control messages received from the signalingprocessor 106. These control messages typically are provided on acall-by-call basis and typically identify an assignment between adigital signal level zero (DS0) and a VP/VC for which usercommunications are interworked. In some instances, the interworking unit202 may transport control messages which may include data to thesignaling processor 106. In some instances, the interworking unit 202can be configured to switch user communications from TDM connections toother TDM connections. The TDM to TDM switching functionality can be asole configuration or a joint configuration with the TDM to ATMinterworking functionality. The interworking unit 202 can be identifiedas a communication device.

The ATM matrix 204 is a controllable ATM matrix that establishesconnections in response to control messages received from the signalingprocessor 106. The ATM matrix 204 is able to interwork between ATMconnections and TDM connections. The ATM matrix 204 also switches ATMconnections with other ATM connections. In addition, the ATM matrix 204can switch calls from TDM connections to other TDM connections. The ATMmatrix 204 transmits and receives call signaling and user communicationsover the connections. The ATM matrix 204 can be identified as acommunication device.

The communication device 206 is the same as the communication devices114-118 of FIG. 1. The communication devices 114-118 and 208 cancomprise additionally any connection system or part thereof, includingan interworking unit or an ATM matrix.

The system of FIG. 2 operates similar to the system of FIG. 1. However,in the system of FIG. 2, the connection system 108 makes connections forTDM to ATM interworking, for ATM to ATM switching, and also for TDM toTDM switching. Therefore, the signaling processor 106 of FIG. 2transmits control messages to the interworking unit 202 and/or to theATM matrix 204 identifying the selected connections.

In a first example, the communication device 114 transmits callsignaling to the signaling processor 106. The communication device 114also transports user communications to the interworking unit 202.

The signaling processor 106 processes the call signaling to determineprocessing options for the call. The signaling processor 106 determinesthat the DN of the call is assigned to a portable communication device.As used herein, the term “portable communication device” means acommunication device that is open to have a ported DN assigned to thatcommunication device. A portable communication device may have one ormore NPA-NXXs, and at least one NPA-NXX is open to have a ported numberassociated with that NPA-NXX. The signaling processor 106 queries theLNP cache 108 to determine if a match for the DN exists.

The LNP cache 108 searches the table having the LNP information anddetermines that a DN match exists for the DN search criteria. The DN hasan associated LRN in the LNP information. The LNP cache 108 passes theLRN to the signaling processor 106.

The signaling processor 106 processes the LRN that is received from theLNP cache 108 to determine processing options for the call. Thesignaling processor 106 determines that the call is to be routed to thecommunication device 116 and selects the connections 208 and 122 to thecommunication device.

The signaling processor 106 creates new call signaling and transmits thenew call signaling to the communication device 118 via a link. In thisexample, the signaling processor adds to the call signaling parameters aported number GAP which contains the DN, places the LRN in the CdPNparameter, and sets the FCI parameter to “translated”.

In addition, the signaling processor 106 transmits a control message tothe interworking unit 202 identifying the selected connection 208 overwhich to interwork the user communications. The signaling processor 106also transmits a control message to the ATM matrix 204 identifying theselected connection 122 over which to switch the user communications

The interworking unit 202 receives the user communications from thecommunication device 114 and the control message from the signalingprocessor 106. In response to the control message, the interworking unit202 interworks the user communications to the connection 208 selected bythe signaling processor 106. In this example, the selected connection isVP/VC on the connection 208, and the connection over which the usercommunications were received is a DS0 on the connection 120.

The ATM matrix 204 receives the user communications over the connection208 and the control message from the signaling processor 106. Inresponse to the control message, the ATM matrix connects the usercommunications to the connection 122 selected by the signaling processor106. In this example, the selected connection is a VP/VC on theconnection 122. The communication device 116 receives the usercommunications over the connection 122 and the new call signalingtransmitted from the signaling processor 106.

In a another example, the signaling processor 106 receives callsignaling. The communication device 116 transports user communicationsto the ATM matrix 204.

The signaling processor 106 processes the call signaling to determineprocessing options for the call. The signaling processor 106 determinesthat the DN of the call is assigned to a portable communication device.

The signaling processor 106 accesses the LNP cache 108 to determine ifthe DN matches a DN in the LNP information. The signaling processor 106searches the LNP information using the DN as the search criteria anddetermines that a match does not exist for the DN. In this example, noinformation is sent to the signaling processor 106 from the LNP cache108.

The signaling processor 106 queries the LNP SCP 112 and identifies theDN. The LNP SCP 112 performs a lookup and determines that the DN is notpresent in its LNP information. The LNP SCP 112 responds to thesignaling processor 106 with the DN.

The signaling processor 106 processes the control message that isreceived from the LNP SCP 112 to determine processing options for thecall. The signaling processor 106 determines that the call is to berouted to the communication device 118 based on the DN of the call andselects a connection 124 to the communication device.

The signaling processor 106 updates the LNP information in the LNP cache108 with the LNP information received from the LNP SCP 112. Thesignaling processor 106 creates new call signaling and transmits the newcall signaling to the communication device 118 via a link. In thisexample, the signaling processor does not add a ported number GAP as acall signaling parameter, places the DN in the CdPN parameter, and setsthe FCI parameter to “translated”. The signaling processor 106 alsotransmits a control message to the ATM matrix 204 identifying theselected connection 124 over which to switch the user communications

The ATM matrix 204 receives the user communications over the connection122 and the control message from the signaling processor 106. Inresponse to the control message, the ATM matrix connects the usercommunications to the connection 124 selected by the signaling processor106. In this example, the selected connection is a VP/VC on theconnection 124. The communication device 116 receives the usercommunications over the connection 124 and the new call signalingtransmitted from the signaling processor 106.

In a further example, the signaling processor 106 receives callsignaling. The communication device 114 transports user communicationsto the interworking unit 202.

The signaling processor 106 processes the call signaling to determineprocessing options for the call. The signaling processor determines thatthe DN of the call is assigned to a portable communication device. Thesignaling processor 106 queries the LNP cache 108 to determine if amatch for the DN exists.

The LNP cache 108 performs a lookup in the table using the DN as themain lookup index and determines that the DN does not exist in the LNPinformation. The LNP cache 108 transmits a control message to thesignaling processor 106 identifying the DN as not having a match.

The signaling processor 106 queries the LNP SCP 112. The LNP SCP 112performs a lookup and determines that a match for the DN exists and thatthe DN has an associated LRN. The LNP SCP 112 responds to the signalingprocessor with the LRN.

The signaling processor 106 processes the control message that isreceived from the LNP SCP 112 to determine processing options for thecall. The signaling processor 106 determines that the call is to berouted to the communication device 206 based on the LRN of the call andselects a connection 210 to the communication device.

The signaling processor 106 creates the new call signaling and transmitsthe new call signaling to the communication device 206 via a link. Inthis example, the signaling processor adds a ported number GAP as a callsignaling parameter, places the LRN in the CdPN parameter, places the DNin the ported number GAP, and sets the FCI parameter to “translated”.The signaling processor 106 also transmits a control message to theinterworking unit 202 identifying the selected connection 210 over whichto switch the user communications.

The interworking unit 202 receives the user communications over theconnection 120 and the control message from the signaling processor 106.In response to the control message, the interworking unit 202 switchesthe user communications to the connection 210 selected by the signalingprocessor 106. In this example, the selected connection is a DS0 on theconnection 210, and the user communications were received by theinterworking unit 202 over a DS0 on the connection 120. Thecommunication device 206 receives the user communications over theconnection 210 and the new call signaling transmitted from the signalingprocessor 106.

The signaling processor 106 updates the LNP information for the DN entryin the LNP cache 108. The LNP cache 108 stores the LNP information forthe DN in the table.

In another example, the communication device 116 transmits callsignaling to the signaling processor 106. The communication device 114also transports user communications to the ATM matrix 204.

The signaling processor 106 processes the call signaling to determineprocessing options for the call. The signaling processor 106 determinesthat the DN of the call is not assigned to a portable communicationdevice.

The signaling processor 106 processes the call signaling and itsassociated parameters to determine processing options for the call. Thesignaling processor 106 determines that the call is to be routed to thecommunication device 114 and selects the connections 208 and 120 to thecommunication device.

The signaling processor 106 creates the new call signaling and transmitsthe new call signaling to the communication device 114 via a link. Inthis example, the signaling processor does not add a ported number GAPas a call signaling parameter, places the DN in the CdPN parameter, andsets the FCI parameter to “not translated”.

In addition, the signaling processor 106 transmits a control message tothe interworking unit 202 identifying the selected connection 120 overwhich to interwork the user communications. The signaling processor 106also transmits a control message to the ATM matrix 204 identifying theselected connection 208 over which to switch the user communications

The ATM matrix 204 receives the user communications over the connection122 and the control message from the signaling processor 106. Inresponse to the control message, the ATM matrix 204 connects the usercommunications to the connection 208 selected by the signaling processor106. In this example, the selected connection is a VP/VC on theconnection 208, and the user communication were received over a VP/VC onthe connection 122.

The interworking unit 202 receives the user communications over theconnection 208 and the control message from the signaling processor 106.In response to the control message, the interworking unit 202 interworksthe user communications to the connection 120 selected by the signalingprocessor 106. In this example, the selected connection is a DS0 on theconnection 120.

The communication device 116 receives the user communications over theconnection 120. The communication device 114 also receives the new callsignaling transmitted from the signaling processor 106.

It will be appreciated that the configurations, systems, and examples ofoperations of FIG. 1 are to be considered to operate fully with theconfigurations, systems, and examples of operations of FIG. 2. Any oneor more systems, configurations, and/or examples of operations of FIG. 1can be used in the system of FIG. 2. Moreover, any of the systems,configurations, and or examples of operations of FIGS. 1-2 can be usedin any of the systems or configurations of a single apparatus or of thecombined systems or configurations of FIGS. 3-41 described below.

The system of the present invention provides a memory cache, referred toherein as the N00 cache, in which N00 information is stored. N00information is any information associated with translating a N00 or tollfree call. Some examples of N00 information are dialed number,originating number, and/or routing information that are used in an N00translation. The N00 cache allows a signaling processor to store and toquickly access the N00 information that is in the N00 cache, rather thanrequiring the switch or other signaling processor to query an N00 SCPfor every call. The system of the present invention can access the N00cache to determine if the N00 information it seeks is available. If thesignaling processor determines that the N00 information it seeks is notaccessible from the N00 cache, it then can query an N00 SCP ifnecessary.

It will be appreciated that the N00 cache provides a signaling processorquick access to N00 information. This allows the signaling processor tomore quickly process calls and the call signaling associated with thecalls and to determine routes, processing options, and connections forthe calls. In addition, because fewer queries are made to the N00 SCP,cost savings are realized for the owner of the signaling processor.Moreover, link usage for access to communication devices is reduced dueto the reduced query/response traffic to and from the N00 SCP.

FIG. 42 illustrates an exemplary embodiment of a call connecting systemof the present invention. The call connecting system 4202 comprises acall routing system 4204 having a signaling processor 4206, a N00 cache4208, and a connection system 4210, a N00 service control point (SCP)4212, and communication devices 4214-4218. The connection system 4210 isconnected to the communication devices 4214-4218 by the connections4220-4224, respectively.

The call routing system 4204 receives call signaling and usercommunications. The call routing system 4204 processes the callsignaling to determine routes for the user communications and todetermine new call signaling. The routing system 4204 makes connectionsfor user communications and transmits new call signaling to thecommunication devices.

The signaling processor 4206 is a signaling platform that can receive,process, and generate call signaling. Based on the processed callsignaling, the signaling processor 4206 selects processing options suchas service or resources for the user communications and generates andtransmits control messages that identify the communication device,processing option, service, and/or resource that is to be used. Thesignaling processor 4206 also selects other processing options, such asvirtual connections and circuit-based connections for call routing, andgenerates and transports control messages that identify the selectedconnections. The signaling processor 4206 can process various forms ofsignaling, including ISDN, GR-303, B-ISDN, SS7, and C7. The signalingprocessor 4206 uses routing logic and routing tables to process the callsignaling. The signaling processor 4206 can be identified as acommunication device.

The signaling processor 4206 determines, based on the call signaling,whether a number is a N00 number. The signaling processor 4206 thendetermines whether the N00 cache should be accessed to search for theN00 information in the N00 cache 4208 and/or whether a query to the N00SCP 4212 is necessary. The signaling processor 4206 determines whetherthe information received as a result of a search from the N00 cache 4208or received in response from the N00 SCP 4212 contains a dialed number,a destination number, or other N00 information and processes theinformation to determine processing options and connections for calls.

The N00 cache 4208 contains N00 information in various formats toprovide the N00 translation. In one embodiment, the N00 cache 4208includes a table with dialed numbers, destination numbers that handlesthe N00 calls, and LRN entries.

In some embodiments, the N00 cache 4208 has similar operations to theLNP cache discussed above such as maintenance, error handling,optimization levels, out of sync handling, and accounting. However, theN00 cache 4208 includes N00 information instead of LNP information. Inanother embodiment, the N00 cache 4208 is combined with the LNP cache.

The N00 information can be placed in and or updated in the N00 cache4208 on a call-by-call basis. Also, the N00 can be pre-loaded to the N00cache 4208, loaded to the N00 cache, or updated at any time from amanagement system or another system.

In some embodiments, certain N00 translations are never stored in theN00 cache 4208 because the N00 SCP 4212 has to be queried based oncomplex N00 translation based on various factors such as time of day,date, and originating number. The N00 cache 4208 then includes a N00flag or N00 identifier for each dialed N00 number to query the N00 SCP4212 for N00 translations.

The N00 SCP 4212 is a database that contains N00 information. The N00SCP 4212 responds to N00 queries made from switches or other callprocessor. The N00 SCP 4212 responds with N00 information. The N00 SCP4212 can be identified as a communication device.

The communication devices 4214-4218 comprise other call routing systemsuch as the call routing system 4204, a connection system such as theconnection system 4210, customer premises equipment (CPE), a serviceplatform, a signaling processor, a remote digital terminal, a crossconnect, an interworking unit, an ATM gateway, or any other devicecapable of initiating, handling, or terminating a call.

The system of FIG. 42 operates as follow. In this example, N00information entries are loaded and existent in the N00 cache either fromprior queries to the N00 SCP 4212 or from being pre-loaded. Thecommunication device 4214 transmits call signaling to the signalingprocessor 4206 and user communications to the connection system 4210.

The signaling processor 4206 receives the call signaling and processesthe call signaling. The signaling processor 4206 determines that thecalled party is a N00 number.

The signaling processor 4206 queries the N00 cache 4208 to determines ifthe N00 number of the call is present in the N00 cache 4208. In thisexample, the signaling processor 4206 designates the N00 number of thecall as the search criteria. The N00 cache 4208 performs the lookup intothe database table using the N00 number as the main lookup index. TheN00 cache 4208 determines that the N00 number is present in the N00information and that the N00 number has an associated N00 informationelement, which is a destination number. The N00 cache 4208 alsodetermines from the N00 flag or identifier that a query to the N00 SCP4212 is not needed for this N00 number. If the N00 flag or identifier isset to launch a query to the N00 SCP 4212, the signaling processor 4206transmits a query to the N00 SCP 4212 for the N00 information so the N00SCP 4212 translates the N00 number based on various criteria such astime of day, date, and originating number.

The N00 cache 4208 responds to the query with the destination number.The signaling processor 4206 uses the destination number from theresponse to further process the call to determine one or moreconnections for the call. The signaling processor 4206 determines thatthe call is to be transmitted to the communication device 4216 andselects the connection 4222 to the communication device.

The signaling processor 4206 transmits a control message to theconnection system 4210 designating the selected connection. Theconnection system 4210 receives the user communications and the controlmessage and, in response to the control message, connects the usercommunications to the selected connection 4222.

Because the signaling processor 4206 did not have to build and transmita query to the N00 SCP 4212, and the N00 SCP 4212 did not have to buildand transmit a response to the signaling processor, significant time andprocessing resources are saved. In addition, neither the signalingprocessor 4206 nor the N00 SCP 4212 had to tear down the response orquery, respectively, to process the call signaling parameters therein.This saves additional time and processing resources.

Also, because the N00 cache 4208 has memory locations within thesignaling processor 4206, the signaling processor merely has to accessthe N00 cache, and special call signaling queries and special callsignaling responses, such as those required for communication with theN00 SCP 4212, do not have to be built or processed. This results inadditional saved time and processing resources.

The Controllable ATM Matrix

FIG. 3 illustrates an exemplary embodiment of a controllableasynchronous transfer mode (ATM) matrix (CAM), but other CAMs thatsupport the requirements of the invention also are applicable. The CAM302 may receive and transmit ATM formatted user communications or callsignaling.

The CAM 302 preferably has a control interface 304, a controllable ATMmatrix 306, an optical carrier-M/synchronous transport signal-M(OC-M/STS-M) interface 308, and an OC-X/STS-X interface 310. As usedherein in conjunction with OC or STS, “M” refers to an integer, and “X”refers to an integer.

The control interface 304 receives control messages originating from thesignaling processor 312, identifies virtual connection assignments inthe control messages, and provides these assignments to the matrix 306for implementation. The control messages may be received over an ATMvirtual connection and through either the OC-M/STS-M interface 308 orthe OC-X/STS-X interface 310 through the matrix 306 to the controlinterface 304, through either the OC-M/STS-M interface or the OC-X/STS-Xinterface directly to the control interface, or through the controlinterface from a link.

The matrix 306 is a controllable ATM matrix that provides cross connectfunctionality in response to control messages from the signalingprocessor 312. The matrix 306 has access to virtual path/virtualchannels (VP/VCs) over which it can connect calls. For example, a callcan come in over a VP/VC through the OC-M/STS-M interface 308 and beconnected through the matrix 306 over a VP/VC through the OC-X/STS-Xinterface 310 in response to a control message received by the signalingprocessor 312 through the control interface 304. Alternately, a call canbe connected in the opposite direction. In addition, the a call can bereceived over a VP/VC through the OC-M/STS-M interface 308 or theOC-X/STS-X interface 310 and be connected through the matrix 306 to adifferent VP/VC on the same OC-M/STS-M interface or the same OC-X/STS-Xinterface.

The OC-M/STS-M interface 308 is operational to receive ATM cells fromthe matrix 306 and to transmit the ATM cells over a connection to thecommunication device 314. The OC-M/STS-M interface 308 also may receiveATM cells in the OC or STS format and transmit them to the matrix 306.

The OC-X/STS-X interface 310 is operational to receive ATM cells fromthe matrix 306 and to transmit the ATM cells over a connection to thecommunication device 316. The OC-X/STS-X interface 310 also may receiveATM cells in the OC or STS format and transmit them to the matrix 306.

Call signaling may be received through and transferred from theOC-M/STS-M interface 308. Also, call signaling may be received throughand transferred from the OC-X/STS-X interface 310. The call signalingmay be connected on a connection or transmitted to the control interfacedirectly or via the matrix 306.

The signaling processor 312 is configured to send control messages tothe CAM 302 to implement particular features on particular VP/VCcircuits. Alternatively, lookup tables may be used to implementparticular features for particular VP/VCs.

FIG. 4 illustrates another exemplary embodiment of a CAM which has timedivision multiplex (TDM) capability, but other CAMs that support therequirements of the invention also are applicable. The CAM 402 mayreceive and transmit in-band and out-of-band signaled calls.

The CAM 402 preferably has a control interface 404, an OC-N/STS-Ninterface 406, a digital signal level 3 (DS3) interface 408, a DS1interface 410, a DS0 interface 412, an ATM adaptation layer (AAL) 414, acontrollable ATM matrix 416, an OC-M/STS-M interface 418A, an OC-X/STS-Xinterface 418B, and an ISDN/GR-303 interface 420. As used herein inconjunction with OC or STS, “N” refers to an integer, “M” refers to aninteger, and “X” refers to an integer.

The control interface 404 receives control messages originating from thesignaling processor 422, identifies DS0 and virtual connectionassignments in the control messages, and provides these assignments tothe AAL 414 or the matrix 416 for implementation. The control messagesmay be received over an ATM virtual connection and through theOC-M/STS-M interface 418A to the control interface 404, through theOC-X/STS-X interface 418B and the matrix 416 to the control interface,or directly through the control interface from a link.

The OC-N/STS-N interface 406, the DS3 interface 408, the DS1 interface410, the DS0 interface 412, and the ISDN/GR-303 interface 420 each canreceive user communications from a communication device 424. Likewise,the OC-M/STS-M interface 418A and the OC-X/STS-X interface 418B canreceive user communications from the communication devices 426 and 428.

The OC-N/STS-N interface 406 receives OC-N formatted user communicationsand STS-N formatted user communications and converts the usercommunications to the DS3 format. The DS3 interface 408 receives usercommunications in the DS3 format and converts the user communications tothe DS1 format. The DS3 interface 408 can receive DS3s from theOC-N/STS-N interface 406 or from an external connection. The DS1interface 410 receives the user communications in the DS1 format andconverts the user communications to the DS0 format. The DS1 interface410 receives DS1s from the DS3 interface 408 or from an externalconnection. The DS0 interface 412 receives user communications in theDS0 format and provides an interface to the AAL 414. The ISDN/GR-303interface 420 receives user communications in either the ISDN format orthe GR-303 format and converts the user communications to the DS0format. In addition, each interface may transmit user communications inlike manner to the communication device 424.

The OC-M/STS-M interface 418A is operational to receive ATM cells fromthe AAL 414 or from the matrix 416 and to transmit the ATM cells over aconnection to the communication device 426. The OC-M/STS-M interface418A also may receive ATM cells in the OC or STS format and transmitthem to the AAL 414 or to the matrix 416.

The OC-X/STS-X interface 418B is operational to receive ATM cells fromthe AAL 414 or from the matrix 416 and to transmit the ATM cells over aconnection to the communication device 428. The OC-X/STS-X interface418B also may receive ATM cells in the OC or STS format and transmitthem to the AAL 414 or to the matrix 416.

Call signaling may be received through and transferred from theOC-N/STS-N interface 406 and the ISDN/GR-303 interface 420. Also, callsignaling may be received through and transferred from the OC-M/STS-Minterface 418A and the OC-X/STS-X interface 418B. The call signaling maybe connected on a connection or transmitted to the control interfacedirectly or via an interface as explained above.

The AAL 414 comprises both a convergence sublayer and a segmentation andreassembly (SAR) sublayer. The AAL 414 obtains the identity of the DS0and the ATM VP/VC from the control interface 404. The AAL 414 isoperational to convert between the DS0 format and the ATM format. AALsare known in the art, and information about AALs is provided byInternational Telecommunications Union (ITU) documents in the series ofI.363, which are incorporated herein by reference. For example, ITUdocument I.363.1 discusses AAL1. An AAL for voice calls is described inU.S. Pat. No. 5,706,553 entitled “Cell Processing for VoiceTransmission,” which is incorporated herein by reference.

Calls with multiple 64 Kilo-bits per second (Kbps) DS0s are known asNx64 calls. If desired, the AAL 414 can be configured to accept controlmessages through the control interface 404 for Nx64 calls. The CAM 402is able to interwork, multiplex, and demultiplex for multiple DS0s. Atechnique for processing VP/VCs is disclosed in U.S. patent applicationSer. No. 08/653,852, which was filed on May 28, 1996, and entitled“Telecommunications System with a Connection Processing System,” andwhich is incorporated herein by reference.

DS0 connections are bi-directional and ATM connections are typicallyuni-directional. As a result, two virtual connections in opposingdirections typically will be required for each DS0. Those skilled in theart will appreciate how this can be accomplished in the context of theinvention. For example, the cross-connect can be provisioned with asecond set of VP/VCs in the opposite direction as the original set ofVP/VCs.

The matrix 416 is a controllable ATM matrix that provides cross connectfunctionality in response to control messages from the signalingprocessor 422. The matrix 416 has access to VP/VCs over which it canconnect calls. For example, a call can come in over a VP/VC through theOC-M/STS-M interface 418A and be connected through the matrix 416 over aVP/VC through the OC-X/STS-X interface 418B in response to a controlmessage received by the signaling processor 422 through the controlinterface 404. Alternately, the matrix 416 may transmit a call receivedover a VP/VC through the OC-M/STS-M interface 418A to the AAL 414 inresponse to a control message received by the signaling processor 422through the control interface 404. Communications also may occur inopposite directions through the various interfaces.

In some embodiments, it may be desirable to incorporate digital signalprocessing capabilities, for example, at the DS0 level. It also may bedesired to apply echo control to selected DS0 circuits. In theseembodiments, a signal processor may be included. The signaling processor422 is configured to send control messages to the CAM 402 to implementparticular features on particular DS0 or VP/VC circuits. Alternatively,lookup tables may be used to implement particular features forparticular circuits or VP/VCs.

It will be appreciated from the teachings above for the CAMs and for theteachings below for the ATM interworking units, that the above describedCAMs can be adapted for modification to transmit and receive otherformatted communications such as synchronous transport module (STM) andEuropean level (E) communications. For example, the OC/STS, DS3, DS1,DS0, and ISDN/GR-303 interfaces can be replaced by STMelectrical/optical (E/O), E3, E1, E0, and digital private networksignaling system (DPNSS) interfaces, respectively.

The ATM Interworking Unit

FIG. 5 illustrates an exemplary embodiment of an interworking unit whichis an ATM interworking unit 502 suitable for the present invention foruse with a SONET system. Other interworking units that support therequirements of the invention also are applicable. The ATM interworkingunit 502 may receive and transmit in-band and out-of-band calls.

The ATM interworking unit 502 preferably has a control interface 504, anOC-N/STS-N interface 506, a DS3 interface 508, a DS1 interface 510, aDS0 interface 512, a signal processor 514, an AAL 516, an OC-M/STS-Minterface 518, and an ISDN/GR-303 interface 520. As used herein inconjunction with OC or STS, “N” refers to an integer, and “M” refers toan integer.

The control interface 504 receives control messages originating from thesignaling processor 522, identifies DS0 and virtual connectionassignments in the control messages, and provides these assignments tothe AAL 516 for implementation. The control messages are received overan ATM virtual connection and through the OC-M/STS-M interface 518 tothe control interface 504 or directly through the control interface froma link.

The OC-N/STS-N interface 506, the DS3 interface 508, the DS1 interface510, the DS0 interface 512, and the ISDN/GR-303 interface 520 each canreceive user communications from a communication device 524. Likewise,the OC-M/STS-M interface 518 can receive user communications from acommunication device 526.

The OC-N/STS-N interface 506 receives OC-N formatted user communicationsand STS-N formatted user communications and demultiplexes the usercommunications to the DS3 format. The DS3 interface 508 receives usercommunications in the DS3 format and demultiplexes the usercommunications to the DS1 format. The DS3 interface 508 can receive DS3sfrom the OC-N/STS-N interface 506 or from an external connection. TheDS1 interface 510 receives the user communications in the DS 1 formatand demultiplexes the user communications to the DS0 format. The DS1interface 510 receives DS1s from the DS3 interface 508 or from anexternal connection. The DS0 interface 512 receives user communicationsin the DS0 format and provides an interface to the AAL 516. TheISDN/GR-303 interface 520 receives user communications in either theISDN format or the GR-303 format and converts the user communications tothe DS0 format. In addition, each interface may transmit usercommunications in like manner to the communication device 524.

The OC-M/STS-M interface 518 is operational to receive ATM cells fromthe AAL 516 and to transmit the ATM cells over the connection to thecommunication device 526. The OC-M/STS-M interface 518 also may receiveATM cells in the OC or STS format and transmit them to the AAL 516.

Call signaling may be received through and transferred from theOC-N/STS-N interface 506 and the ISDN/GR-303 interface 520. Also, callsignaling may be received through and transferred from the OC-M/STS-Minterface 518. The call signaling may be connected on a connection ortransmitted to the control interface directly or via another interfaceas explained above.

The AAL 516 comprises both a convergence sublayer and a segmentation andreassembly (SAR) sublayer. The AAL 516 obtains the identity of the DS0and the ATM VP/VC from the control interface 504. The AAL 516 isoperational to convert between the DS0 format and the ATM format.

If desired, the AAL 516 can be configured to accept control messagesthrough the control interface 504 for Nx64 calls. The ATM interworkingunit 502 is able to interwork, multiplex, and demultiplex for multipleDS0s.

DS0 connections are bi-directional and ATM connections are typicallyuni-directional. As a result, two virtual connections in opposingdirections typically will be required for each DS0. Those skilled in theart will appreciate how this can be accomplished in the context of theinvention. For example, the cross-connect can be provisioned with asecond set of VP/VCs in the opposite direction as the original set ofVP/VCs.

In some embodiments, it may be desirable to incorporate digital signalprocessing capabilities at the DS0 level. It may also be desired toapply echo control to selected DS0 circuits. In these embodiments, asignal processor 514 is included either separately (as shown) or as apart of the DS0 interface 512. The signaling processor 522 is configuredto send control messages to the ATM interworking unit 502 to implementparticular features on particular DS0 circuits. Alternatively, lookuptables may be used to implement particular features for particularcircuits or VP/VCs.

FIG. 6 illustrates another exemplary embodiment of an interworking unitwhich is an ATM interworking unit 602 suitable for the present inventionfor use with an SDH system. The ATM interworking unit 602 preferably hasa control interface 604, an STM-N electrical/optical (E/O) interface606, an E3 interface 608, an E1 interface 610, an E0 interface 612, asignal processor 614, an AAL 616, an STM-M electrical/optical (E/O)interface 618, and a DPNSS interface 620. As used herein in conjunctionwith STM, “N” refers to an integer, and “M” refers to an integer.

The control interface 604 receives control messages from the signalingprocessor 622, identifies E0 and virtual connection assignments in thecontrol messages, and provides these assignments to the AAL 616 forimplementation. The control messages are received over an ATM virtualconnection and through the STM-M interface 618 to the control interface504 or directly through the control interface from a link.

The STM-N E/O interface 606, the E3 interface 608, the E1 interface 610,the E0 interface 612, and the DPNSS interface 620 each can receive usercommunications from a second communication device 624. Likewise, theSTM-M E/O interface 618 can receive user communications from a thirdcommunication device 626.

The STM-N E/O interface 606 receives STM-N electrical or opticalformatted user communications and converts the user communications fromthe STM-N electrical or STM-N optical format to the E3 format. The E3interface 608 receives user communications in the E3 format anddemultiplexes the user communications to the E1 format. The E3 interface608 can receive E3s from the STM-N E/O interface 606 or from an externalconnection. The E1 interface 610 receives the user communications in theE1 format and demultiplexes the user communications to the E0 format.The E1 interface 610 receives Els from the STM-N E/O interface 606 orthe E3 interface 608 or from an external connection. The E0 interface612 receives user communications in the E0 format and provides aninterface to the AAL 616. The DPNSS interface 620 receives usercommunications in the DPNSS format and converts the user communicationsto the E0 format. In addition, each interface may transmit usercommunications in a like manner to the communication device 624.

The STM-M E/O interface 618 is operational to receive ATM cells from theAAL 616 and to transmit the ATM cells over the connection to thecommunication device 626. The STM-M E/O interface 618 may also receiveATM cells in the STM-M E/O format and transmit them to the AAL 616.

Call signaling may be received through and transferred from the STM-NE/O interface 606 and the DPNSS interface 620. Also, call signaling maybe received through and transferred from the STM-M E/O interface 618.The call signaling may be connected on a connection or transmitted tothe control interface directly or via another interface as explainedabove.

The AAL 616 comprises both a convergence sublayer and a segmentation andreassembly (SAR) sublayer. The AAL obtains the identity of the E0 andthe ATM VP/VC from the control interface 604. The AAL 616 is operationalto convert between the E0 format and the ATM format, either in responseto a control instruction or without a control instruction. AAL's areknown in the art. If desired, the AAL 616 can be configured to receivecontrol messages through the control interface 604 for Nx64 usercommunications.

E0 connections are bi-directional and ATM connections typically areuni-directional. As a result, two virtual connections in opposingdirections typically will be required for each E0. Those skilled in theart will appreciate how this can be accomplished in the context of theinvention.

In some instances, it may be desirable to incorporate digital signalprocessing capabilities at the E0 level. Also, it may be desirable toapply echo control. In these embodiments, a signal processor 614 isincluded either separately (as shown) or as a part of the E0 interface612. The signaling processor 622 is configured to send control messagesto the ATM interworking unit 602 to implement particular features onparticular circuits. Alternatively, lookup tables may be used toimplement particular features for particular circuits or VP/VCs.

The Signaling Processor

The signaling processor receives and processes telecommunications callsignaling, control messages, and customer data to select connectionsthat establish communication paths for calls. In the preferredembodiment, the signaling processor processes SS7 signaling to selectconnections for a call. An example of call processing in a callprocessor and the associated maintenance that is performed for callprocessing is described in a U.S. patent application Ser. No. 09/026,766entitled “System and Method for Treating a Call for Call Processing,”filed on Feb. 20, 1998, which is incorporated herein by reference.

In addition to selecting connections, the signaling processor performsmany other functions in the context of call processing. It not only cancontrol routing and select the actual connections, but it also canvalidate callers, control echo cancellers, generate accountinginformation, invoke intelligent network functions, access remotedatabases, manage traffic, and balance network loads. One skilled in theart will appreciate how the signaling processor described below can beadapted to operate in the above embodiments.

FIG. 7 depicts an embodiment of a signaling processor. Other versionsalso are contemplated. In the embodiment of FIG. 7, the signalingprocessor 702 has a signaling interface 704, a call processing controlsystem 706 (CPCS), and a call processor 708. It will be appreciated thatthe signaling processor 702 may be constructed as modules in a singleunit or as multiple units.

The signaling interface 704 is coupled externally to signalingsystems—preferably to signaling systems having a message transfer part(MTP), an ISDN user part (ISUP), a signaling connection control part(SCCP), an intelligent network application part (INAP), and atransaction capabilities application part (TCAP). The signalinginterface 704 preferably is a platform that comprises an MTP level 1710, an MTP level 2 712, an MTP level 3 714, an SCCP process 716, anISUP process 718, and a TCAP process 720. The signaling interface 704also has INAP functionality.

The signaling interface 704 may be linked to a communication device (notshown). For example, the communication device may be an SCP which isqueried by the signaling interface with a TCAP query to obtainadditional call-associated data. The answer message may have additionalinformation parameters that are required to complete call processing.The communication device also may be an STP or other device.

The signaling interface 704 is operational to transmit, process, andreceive call signaling. The TCAP, SCCP, ISUP, and INAP functionality usethe services of the MTP to transmit and receive the messages.Preferably, the signaling interface 704 transmits and receives SS7messages for MTP, TCAP, SCCP, and ISUP. Together, this functionality isreferred to as an “SS7 stack,” and it is well known. The softwarerequired by one skilled in the art to configure an SS7 stack iscommercially available. One example is the OMNI SS7 stack from Dale,Gesek, McWilliams & Sheridan, Inc. (the DGM&S company).

The processes of the signaling interface 704 process information that isreceived in message signal units (MSUs) and convert the information tocall information elements that are sent to the call processor 708 to beprocessed. A call information element may be, for example, an ISUP IAMmessage parameter from the MSU. The signaling interface 704 strips theunneeded header information from the MSU to isolate the messageinformation parameters and passes the parameters to the call processor708 as the call information elements. Examples of these parameters arethe called number, the calling number, and user service information.Other examples of messages with information elements are an ANM, an ACM,an REL, an RLC, and an INF. In addition, call information elements aretransferred from the call processor 708 back to the signaling interface704, and the information elements are reassembled into MSUs andtransferred to a signaling point.

The CPCS 706 is a management and administration system. The CPCS 706 isthe user interface and external systems interface into the callprocessor 708. The CPCS 706 serves as a collection point forcall-associated data such as logs, operational measurement data,statistical information, accounting information, and other call data.The CPCS 706 can configure the call-associated data and/or transmit itto reporting centers.

The CPCS 706 accepts data, such as the translations, from a source suchas an operations system and updates the data in the tables in the callprocessor 708. The CPCS 706 ensures that this data is in the correctformat prior to transferring the data to the call processor 708. TheCPCS 706 also provides configuration data to other devices including thecall processor 708, the signaling interface 704, the interworking unit(not shown), and the controllable ATM matrix (not shown). In addition,the CPCS 706 provides for remote control of call monitoring and calltapping applications from the call processor 708.

The CPCS 706 also serves as a collection point for alarms. Alarminformation is transferred to the CPCS 706. The CPCS 706 then transportsalarm messages to the required communication device. For example, theCPCS 706 can transport alarms to an operations center.

The CPCS 706 also has a human-machine interface (HMI). This allows aperson to log onto the CPCS 706 and manage data tables or review datatables in the CPCS or provide maintenance services.

The call processor 708 processes call signaling and controls an ATMinterworking unit, such as an ATM interworking multiplexer (mux) thatperforms interworking of DS0s and VP/VCs, and an ATM matrix. However,the call processor 708 may control other communications devices andconnections in other embodiments.

The call processor 708 comprises a control platform 722 and anapplication platform 724. Each platform 722 and 724 is coupled to theother platform.

The control platform 722 is comprised of various external interfacesincluding an interworking unit interface, a controllable ATM matrix, anecho interface, a resource control interface, a call informationinterface, and an operations interface. The control platform 722 isexternally coupled to an interworking unit control, a controllable ATMmatrix control, an echo control, a resource control, accounting, andoperations. The interworking unit interface exchanges messages with atleast one interworking unit. These messages comprise DS0 to VP/VCassignments, acknowledgments, and status information. The controllableATM matrix interface exchanges messages with at least one controllableATM matrix. These messages comprise DS0 to VP/VC assignments, VP/VC toVP/VC assignments, acknowledgments, and status information. The echocontrol interface exchanges messages with echo control systems. Messagesexchanged with echo control systems might include instructions to enableor disable echo cancellation on particular DS0s, acknowledgments, andstatus information.

The resource control interface exchanges messages with externalresources. Examples of such resources are devices that implementcontinuity testing, encryption, compression, tonedetection/transmission, voice detection, and voice messaging. Themessages exchanged with resources are instructions to apply the resourceto particular DS0s, acknowledgments, and status information. Forexample, a message may instruct a continuity testing resource to providea loopback or to send and detect a tone for a continuity test.

The call information interface transfers pertinent call information to acall information processing system, such as to the CPCS 706. Typicalcall information includes accounting information, such as the parties tothe call, time points for the call, and any special features applied tothe call. One skilled in the art will appreciate how to produce thesoftware for the interfaces in the control platform 722.

The application platform 724 processes signaling information from thesignaling interface 704 to select connections. The identity of theselected connections are provided to the control platform 722 for theinterworking unit interface and/or for the controllable ATM matrixinterface. The application platform 724 is responsible for validation,translation, routing, call control, exceptions, screening, and errorhandling. In addition to providing the control requirements for theinterworking unit and the controllable ATM matrix, the applicationplatform 724 also provides requirements for echo control and resourcecontrol to the appropriate interface of the control platform 722. Inaddition, the application platform 724 generates signaling informationfor transmission by the signaling interface 704. The signalinginformation might be for ISUP, INAP, or TCAP messages to externalnetwork elements. Pertinent information for each call is stored in anenhanced circuit data block (ECDB) for the call. The ECDB can be usedfor tracking and accounting the call.

The application platform 724 preferably operates in general accord withthe Basic Call State Model (BCSM) defined by the ITU. An instance of theBCSM is created to handle each call. The BCSM includes an originatingprocess and a terminating process. The application platform 724 includesa service switching function (SSF) that is used to invoke the servicecontrol function (SCF). Typically, the SCF is contained in an SCP. TheSCF is queried with TCAP or INAP messages that are transported by thesignaling interface 704 and which are initiated with information fromthe SSF in the application platform 724. The originating or terminatingprocesses will access remote databases with intelligent network (IN)functionality via the SSF.

Software requirements for the application platform 724 can be producedin specification and description language (SDL) defined in ITU-T Z.100or similar logic or description languages. The SDL can be converted intoC code. A real time case tool such as SDT from Telelogic, Inc. or ObjectTime from Object Time, Inc. can be used. Additional C and C++ code canbe added as required to establish the environment. It will beappreciated that other software languages and tools may be used.

The call processor 708 can be comprised of the above-described softwareloaded onto a computer. The computer can be a generally availablefault-tolerant Unix computer, such as those provided by Sun, Tandem, orHewlett Packard. It may be desirable to utilize the multi-threadingcapability of a Unix operating system.

From FIG. 7, it can be seen that the application platform 724 processessignaling information to control numerous systems and facilitate callconnections and services. The SS7 signaling is exchanged between thecall processor 708 and external components through the signalinginterface 704, and control information is exchanged with externalsystems through the control platform 722. Advantageously, the signalinginterface 704, the CPCS 706, and the call processor 708 are notintegrated into a switch central processing unit (CPU) that is coupledto a switching matrix. Unlike an SCP, the components of the signalingprocessor 702 are capable of processing ISUP messages independently ofTCAP queries.

SS7 Message Designations

SS7 messages are well known. Designations for various SS7 messagescommonly are used. Those skilled in the art are familiar with thefollowing message designations:

-   -   ACM—Address Complete Message    -   ANM—Answer Message    -   BLO—Blocking    -   BLA—Blocking Acknowledgment    -   CPG—Call Progress    -   CGB—Circuit Group Blocking    -   CGBA—Circuit Group Blocking Acknowledgment    -   GRS—Circuit Group Reset    -   GRA—Circuit Group Reset Acknowledgment    -   CGU—Circuit Group Unblocking    -   CGUA—Circuit Group Unblocking Acknowledgment    -   CQM—Circuit Group Query    -   CQR—Circuit Group Query Response    -   CRM—Circuit Reservation Message    -   CRA—Circuit Reservation Acknowledgment    -   CVT—Circuit Validation Test    -   CVR—Circuit Validation Response    -   CFN—Confusion    -   COT—Continuity    -   CCR—Continuity Check Request    -   EXM—Exit Message    -   INF—Information    -   INR—Information Request    -   IAM—Initial Address Message    -   LPA—Loop Back Acknowledgment    -   PAM—Pass Along Message    -   REL—Release    -   RLC—Release Complete    -   RSC—Reset Circuit    -   RES—Resume    -   SUS—Suspend    -   UBL—Unblocking    -   UBA—Unblocking Acknowledgment    -   UCIC—Unequipped Circuit Identification Code.        Call Processor Tables

Call processing typically entails two aspects. First, an incoming or“originating” connection is recognized by an originating call process.For example, the initial connection that a call uses to enter a networkis the originating connection in that network. Second, an outgoing or“terminating” connection is selected by a terminating call process. Forexample, the terminating connection is coupled to the originatingconnection in order to extend the call through the network. These twoaspects of call processing are referred to as the originating side ofthe call and the terminating side of the call.

FIG. 8 depicts an exemplary data structure preferably used by the callprocessor 702 of FIG. 7 to execute the BCSM. This is accomplishedthrough a series of tables that point to one another in various ways.The pointers typically are comprised of next function and next labeldesignations. The next function points to the next table, and the nextlabel points to an entry or a range of entries in that table. It will beappreciated that the pointers for the main call processing areillustrated in FIG. 8.

The primary data structure has a TDM trunk circuit table 802, an ATMtrunk circuit table 804, a trunk group table 806, a carrier table 808,an exception table 810, an originating line information (OLI) table 812,an automatic number identification (ANI) table 814, a called numberscreening table 816, a called number table 818, a routing table 820, atrunk group class of service (COS) table 822, and a message mappingtable 824. Also included in the data structure are a day of year table826, a day of week table 828, a time of day table 830, and a time zonetable 832.

The TDM trunk circuit table 802 contains information required toprovision the TDM side of a connection from the call processor site.Each circuit on the TDM side of a connection has an entry. The TDM trunkcircuit table 802 is accessed from the trunk group table 806 or anexternal call process, and it points to the trunk group table.

The ATM trunk circuit table 804 contains information required toprovision the ATM side of a connection. Typically, one record appears inthis table per ATM trunk group. Although, the system can be configuredalternately for multiple records per trunk group. The ATM trunk circuittable 804 is accessed from the trunk group table 806 or an external callprocess, and it points to the trunk group table.

The trunk group table 806 contains information that is required to buildtrunk groups out of different trunk members identified in the TDM andATM trunk circuit tables 802 and 804. The trunk group table 806 containsinformation related to the originating and terminating trunk groups. Thetrunk group table 806 typically points to the carrier table 808.Although, the trunk group table 806 may point to the exception table810, the OLI table 812, the ANI table 814, the called number screeningtable 816, the called number table 818, the routing table 820, the dayof year table 826, the day of week table 828, the time of day table 830,and the treatment table (see FIG. 9).

For default processing of an IAM of an outgoing call in the forwarddirection, when the call process determines call setup and routingparameters for user communications on the originating portion, the trunkgroup table 806 is the next table after the TDM and ATM trunk circuittables 802 and 804, and the trunk group table points to the carriertable 808. For default processing of an IAM of an outgoing call in theforward direction, when the call process determines call setup androuting parameters for user communications on the terminating portion,the trunk group table 806 is the next table after the routing table 820,and the trunk group table points to the TDM or ATM trunk circuit table802 or 804. For default processing of an ACM or an ANM of an outgoingcall in the originating direction, when the call process determinesparameters for signaling, the trunk group table 806 is the next tableafter the TDM or ATM trunk circuit table 802 or 804, and the trunk grouptable points to the message mapping table 824. It will be appreciatedthat this is the default method, and, as explained herein, otherimplementations of table processing occur.

The carrier table 808 contains information that allows calls to bescreened based, at least in part, on the carrier information parameterand the carrier selection parameter. The carrier table 808 typicallypoints to the exception table 810. Although, the carrier table 808 maypoint to the OLI table 812, the ANI table 814, the called numberscreening table 816, the called number table 818, the routing table 820,the day of year table 826, the day of week table 828, the time of daytable 830, the treatment table (see FIG. 9), and the database servicestable (see FIG. 11).

The exception table 810 is used to identify various exception conditionsrelated to the call that may influence the routing or handling of thecall. The exception table 810 contains information that allows calls tobe screened based, at least in part, on the called party number and thecalling party's category. The exception table 810 typically points tothe OLI table 812. Although, the exception table 810 can point to theANI table 814, the called number screening table 816, the called numbertable 818, the routing table 820, the day of year table 826, the day ofweek table 828, the time of day table 830, the call rate table, thepercent control table, the treatment table (see FIG. 9), and thedatabase services table (see FIG. 11).

The OLI table 812 contains information that allows calls to be screenedbased, at least in part, on originating line information in an IAM. TheOLI table 812 typically points to the ANI table 814. Although, the OLItable can point to the called number screening table 816, the callednumber table 818, the routing table 820, the day of year table 826, theday of week table 828, the time of day table 830, and the treatmenttable (see FIG. 9).

The ANI table 814 is used to identify any special characteristicsrelated to the caller's number, which is commonly known as automaticnumber identification. The ANI table 814 is used to screen and validatean incoming ANI. ANI specific requirements such as queuing, echocancellation, time zone, and treatments can be established. The ANItable 814 typically points to the called number screening table 816.Although, the ANI table 814 can point to the called number table 818,the routing table 820, the day of year table 826, the day of week table828, the time of day table 830, and the treatment table (see FIG. 9).

The called number screening table 816 is used to screen called numbers.The called number screening table 816 determines the disposition of thecalled number and the nature of the called number. The called numberscreening table 816 is used to provide the trigger detection point (TDP)for an AIN SCP TCAP query. It is used, for example, with the localnumber portability (LNP) feature. The called number screening table caninvoke a TCAP. The called number screening table 816 typically points tothe called number table 818. Although, the called number screening table816 can point to the routing table 820, the treatment table, the callrate table, the percent table (see FIG. 9), and the database servicestable (see FIG. 11).

The called number table 818 is used to identify routing requirementsbased on, for example, the called number. This will be the case forstandard calls. The called number table 818 typically points to therouting table 810. In addition, the called number table 826 can beconfigured to alternately point to the day of year table 826. The callednumber table 818 can also point to the treatment table (see FIG. 9) andthe database services table (see FIG. 11).

The routing table 820 contains information relating to the routing of acall for various connections. The routing table 820 typically points tothe treatment table (see FIG. 9). Although, the routing table also canpoint to the trunk group table 806 and the database services table (seeFIG. 11).

For default processing of an IAM of an outgoing call in the forwarddirection, when the call process determines call setup and routingparameters for user communications, the routing table 820 is the nexttable after the called number table 818, and the routing table points tothe trunk group table 806. For default processing of an IAM of anoutgoing call in the forward direction, when the call process determinesparameters for signaling, the routing table 820 is the next table afterthe called number table 818, and the routing table points to the messagemapping table 824. It will be appreciated that this is the defaultmethod, and, as explained herein, other implementations of tableprocessing occur.

The trunk group COS table 822 contains information that allows calls tobe routed differently based on the class of service assigned to theoriginating trunk group and to the terminating trunk group. The trunkgroup COS table can point to the routing table 820 or the treatmenttable (see FIG. 9).

When the trunk group COS table 822 is used in processing, after therouting table 820 and the trunk group table 806 are processed, the trunkgroup table points to the trunk group COS table. The trunk group COStable points back to the routing table 820 for further processing.Processing then continues with the routing table 820 which points to thetrunk group table 806, and the trunk group table which points to the TDMor ATM trunk circuit table 802 or 804. It will be appreciated that thisis the default method, and, as explained herein, other implementationsof table processing occur.

The message mapping table 824 is used to provide instructions for theformatting of signaling messages from the call processor. It typicallycan be accessed by the routing table 820 or the trunk group table 806and typically determines the format of the outgoing messages leaving thecall processor.

The day of year table 826 contains information that allows calls to berouted differently based on the day of the year. The day of year tabletypically points to the routing table 820 and references the time zonetable 832 for information. The day of year table 826 also can point tothe called number screening table 816, the called number table 818, therouting table 820, the day of week table 828, the time of day table 830,and the treatment table (see FIG. 9).

The day of week table 828 contains information that allows calls to berouted differently based on the day of the week. The day of week tabletypically points to the routing table 820 and references the time zonetable 832 for information. The day of week table 828 also can point tothe called number screening table 816, the called number table 818, thetime of day table 830, and the treatment table (see FIG. 9).

The time of day table 830 contains information that allows calls to berouted differently based on the time of the day. The time of day table830 typically points to the routing table 820 and references the timezone table 832 for information. The time of day table 830 also can pointto the called number screening table 816, the called number table 818,and the treatment table (see FIG. 9).

The time zone table 832 contains information that allows call processingto determine if the time associated with the call processing should beoffset based on the time zone or daylight savings time. The time zonetable 832 is referenced by, and provides information to, the day of yeartable 826, the day of week table 828, and the time of day table 830.

FIG. 9 is an overlay of FIG. 8. The tables from FIG. 8 are present.However, for clarity, the table's pointers have been omitted, and sometables have not been duplicated in FIG. 9. FIG. 9 illustrates additionaltables that can be accessed from the tables of FIG. 8. These include anoutgoing release table 902, a treatment table 904, a call rate table906, and a percent control table 908, and time/date tables 910.

The outgoing release table 902 contains information that allows callprocessing to determine how an outgoing release message is to beformatted. The outgoing release table 902 typically points to thetreatment table 906.

The treatment table 904 identifies various special actions to be takenin the course of call processing. For example, based on the incomingtrunk group or ANI, different treatments or cause codes are used toconvey problems to the called and calling parties. This typically willresult in the transmission of a release message (REL) and a cause value.The treatment table 904 typically points to the outgoing release table902 and the database services table (see FIG. 10).

The call rate table 906 contains information that is used to controlcall attempts on an attempt per second basis. Preferably, attempts from100 per second to 1 per minute are programmable. The call rate table 906typically points to the called number screening table 816, the callednumber table 818, the routing table 820, and the treatment table 904.

The percent control table 908 contains information that is used tocontrol call attempts based upon a percent value of the traffic that isprocessed through call processing. The percent control table 908typically points to the called number screening table 816, the callednumber table 818, the routing table 820, and the treatment table 904.

The date/time tables 910 have been identified in FIG. 8 as the day ofyear table 826, the day of week table 828, the time of day table 826,and the time zone table 832. They are illustrated in FIG. 9 as a singlelocation for ease and clarity but need not be so located.

FIG. 10 is an overlay of FIGS. 8-9. The tables from FIGS. 8-9 arepresent. However, for clarity, the table's pointers have been omitted,and some tables have not been duplicated in FIG. 10.

FIG. 10 illustrates additional tables that can be accessed from thetables of FIGS. 8-9 and which are directed to the TCAP and the SCCPmessage processes. These include a database services table 1002, asignaling connection control part (SCCP) table 1004, an intermediatesignaling network identification (ISNI) table 1006, a transactioncapabilities application part (TCAP) table 1008, and an advancedintelligent network (AIN) event parameters table 1010.

The database services table 1002 contains information about the type ofdatabase service requested by call processing. The database servicestable 1002 references and obtains information from the SCCP table 1004and the TCAP table 1008. After the database function is performed, thecall is returned to normal call processing. The database services table1002 points to the called number table 818.

The SCCP table 1004 contains information and parameters required tobuild an SCCP message. The SCCP table 1004 is referenced by the databaseservices table 1002 and provides information to the database servicestable.

The ISNI table 1006 contains network information that is used forrouting SCCP message to a destination node. The ISNI table 1006 isreferenced by the SCCP table 1004 and provides information to the SCCPtable.

The TCAP table 1008 contains information and parameters required tobuild a TCAP message. The TCAP table 1008 is referenced by the databaseservices table 1002 and provides information to the database servicestable.

The AIN event parameters table 1010 contains information and parametersthat are included in the parameters portion of a TCAP event message. TheAIN event parameters table 1010 is referenced by the TCAP table 1008 andprovides information to the TCAP table.

FIG. 11 is an overlay of FIGS. 8-10. The tables from FIGS. 8-10 arepresent. However, for clarity, the tables have not been duplicated inFIG. 11. FIG. 11 illustrates additional tables that can be used to setupthe call process so that the tables of FIGS. 8-10 may be used. Thesesetup tables 1102 include a site office table 1104, an external echocanceller table 1106, an interworking unit (IWU) table 1108, acontrollable ATM matrix (CAM) interface table 1110, and a controllableATM matrix (CAM) table 1112.

The site office table 1104 contains information which lists office-wideparameters, some of which are information-based and others which affectcall processing. The site office table 1104 provides information to thecall processor or switch during initialization or other setupprocedures, such as population of data or transfer of information to oneor more memory locations for use during call processing.

The external echo canceller 1106 contains information that provides theinterface identifier and the echo canceller type when an external echocanceller is required. The external echo canceller table 1106 providesinformation to the call processor or switch during initialization orother setup procedures, such as population of data or transfer ofinformation to one or more memory locations for use during callprocessing.

The IWU table 1108 contains the internet protocol (IP) identificationnumbers for interfaces to the interworking units at the call processoror switch site. The IWU table 1108 provides information to the callprocessor or switch during initialization or other setup procedures,such as population of data or transfer of information to one or morememory locations for use during call processing.

The CAM interface table 1110 contains information for the logicalinterfaces associated with the CAM. The CAM interface table 1110provides information to the call processor or switch duringinitialization or other setup procedures, such as population of data ortransfer of information to one or more memory locations for use duringcall processing.

The CAM table 1112 contains information associated with the logical andphysical setup properties of the CAM. The CAM table 1112 providesinformation to the call processor or switch during initialization orother setup procedures, such as population of data or transfer ofinformation to one or more memory locations for use during callprocessing.

FIGS. 12-41 depict examples of the various tables described above. Itwill be appreciated that other versions of tables may be used. Inaddition, information from the identified tables may be combined orchanged to form different tables.

FIG. 12 depicts an example of a TDM trunk circuit table. The TDM trunkcircuit table is used to access information about the originatingcircuit for originating circuit call processing. It also is used toprovide information about the terminating circuit for terminatingcircuit call processing. The trunk group number of the circuitassociated with the call is used to enter the table. The group member isthe second entry that is used as a key to identify or fill informationin the table. The group member identifies the member number of the trunkgroup to which the circuit is assigned, and it is used for the circuitselection control.

The table also contains the trunk circuit identification code (TCIC).The TCIC identifies the trunk circuit which is typically a DS0. The echocanceller (EC) label entry identifies the echo canceller, if any, whichis connected to the circuit. The interworking unit (IWU) label and theinterworking unit (IWU) port identify the hardware location and the portnumber, respectively, of the interworking unit. The DS1/E1 label and theDS1/E1 channel denote the DS1 or the E1 and the channel within the DS1or E1, respectively, that contains the circuit. The initial statespecifies the state of the circuit when it is installed. Valid statesinclude blocked if the circuit is installed and blocked from usage,unequipped if the circuit is reserved, and normal if the circuit isinstalled and available from usage.

FIG. 13 depicts an example of an ATM trunk circuit table. The ATM trunkcircuit table is used to access information about the originatingcircuit for originating circuit call processing. It also is used toprovide information about the terminating circuit for terminatingcircuit call processing.

The trunk group number of the circuit associated with the call is usedto enter the table. The group size denotes the number of members in thetrunk group. The starting trunk circuit identification code (TCIC) isthe starting TCIC for the trunk group, and it is used in the routinglabel of an ISUP message. The transmit interface label identifies thehardware location of the virtual path on which the call will betransmitted. The transmit interface label may designate either aninterworking unit interface or a CAM interface for the designated trunkmembers. The transmit virtual path identifier (VPI) is the VP that willbe used on the transmission circuit side of the call. The receiveinterface label identifies the hardware location of the virtual path onwhich the call will be received. The receive interface label maydesignate either an interworking unit interface or a CAM interface forthe designated trunk members. The receive virtual path identifier (VPI)is the VP that will be used on the reception circuit side of the call.The initial state specifies the state of the circuit when it isinstalled. Valid states include blocked if the circuit is installed andblocked from usage, unequipped if the circuit is reserved, and normal ifthe circuit is installed and available from usage.

FIG. 14A depicts an example of a trunk group table. The trunk groupnumber of the trunk group associated with the circuit is used to keyinto the trunk group table. The administration information field is usedfor information purposes concerning the trunk group and typically is notused in call processing. The associated point code is the point code forthe far end switch or call processor to which the trunk group isconnected. The common language location identifier (CLLI) entry is astandardized Bellcore entry for the associated office to which the trunkgroup is connected. The trunk type identifies the type of the trunk inthe trunk group. The trunk type may be a TDM trunk, an ATM trunk fromthe interworking unit, or an ATM trunk from the CAM.

The associated numbering plan area (NPA) contains informationidentifying the switch from which the trunk group is originating or towhich the trunk group is terminating. The associated jurisdictioninformation parameter (JIP) contains information identifying the switchfrom which the trunk group is originating or to which the trunk group isterminating. If an ISUP JIP is received, an outgoing JIP has the samevalue as the received JIP. If an ISUP JIP is not received in an IAM, anda default JIP value is present, then call processing will populate theJIP of the outgoing IAM with the default value from the trunk grouptable. If a JIP is not received, and there is no default JIP value, thenan outgoing JIP is not transmitted.

The time zone label identifies the time zone that should be used whencomputing a local date and a local time for use with a day of yeartable, the day of week table, and the time of day table. The echocanceller information field describes the trunk group echo cancellationrequirements. Valid entries for the echo canceller information includenormal for a trunk group that uses internal echo cancellation, externalfor a trunk group that requires external echo cancellers, and disablefor a trunk group that requires no echo cancellation for any callpassing over the group.

FIG. 14B is a continuation of FIG. 14A for the trunk group table. Thesatellite entry specifies that the trunk group for the circuit isconnected through a satellite. If the trunk group uses too manysatellites, then a call should not use the identified trunk group. Thisfield is used in conjunction with the nature of connection satelliteindicator field from the incoming IAM to determine if the outgoing callcan be connected over this trunk group. The select sequence indicatesthe methodology that will be used to select a connection. Valid entriesfor the select sequence field include the following: most idle, leastidle, ascending, or descending. The interworking unit (IWU) prioritysignifies that outgoing calls will attempt to use a trunk circuit on thesame interworking unit before using a trunk circuit on a differentinterworking unit.

Glare resolution indicates how a glare situation is to be resolved.Glare is the dual seizure of the same circuit. If the glare resolutionentry is set to “even/odd,” the switch or the call processor with thehigher point code value will control the even number TCICs within thetrunk group. The switch or call processor with the lower point codevalue will control the odd number TCICs. If the glare resolution entryis set to “all,” the call processor controls all of the TCICs within thetrunk group. If the glare resolution entry is set to “none,” the callprocessor will have no glare control and will yield to all doubleseizures within the trunk group.

Continuity control indicates whether continuity is to be checked.Continuity for outgoing calls on the originating call processor arecontrolled on a trunk group basis. This field specifies whethercontinuity is not required or whether continuity is required and thefrequency of the required check. The field identifies a percentage ofthe calls that require continuity check.

The reattempt entry specifies how many times the outgoing call will bere-attempted using a different circuit from the same trunk group after acontinuity check failure, a glare, or other connection failure. Theignore local number portability (LNP) information specifies whether ornot the incoming LNP information is ignored. The treatment label is alabel into the treatment table for the trunk group used on the call.Because specific trunk group connections may require specific releasecauses or treatments for a specific customer, this field identifies thetype of treatment that is required. The message mapping label is a labelinto the message mapping table which specifies the backward messageconfiguration that will be used on the trunk group.

FIG. 14C is a continuation of FIG. 14B for the trunk group table. Thequeue entry signifies that the terminating part of the trunk group iscapable of queuing calls originating from a subscriber that called anumber which terminates in this trunk group. The ring no answer entryspecifies whether the trunk group requires ring no answer timing. If theentry is set to 0, the call processing will not use the ring no answertiming for calls terminated on the trunk group. A number other than 0specifies the ring no answer timing in seconds for calls terminating onthis trunk group. The voice path cut through entry identifies how andwhen the terminating call's voice path will be cut through on the trunkgroup. The options for this field include the following: connect for acut through in both directions after receipt of an ACM, answer for cutthrough in the backward direction upon receipt of an ACM, then cutthrough in the forward direction upon receipt of an ANM, or immediatefor cut through in both directions immediately after an IAM has beensent.

The originating class of service (COS) label provides a label into aclass of service table that determines how a call is handled based onthe combination of the originating COS and the terminating COS fromanother trunk group. Based on the combination of this field and theterminating COS of another trunk group's field, the call will be handleddifferently. For example, the call may be denied, route advanced, orotherwise processed. The terminating class of service (COS) labelprovides a label into a class of service table that determines how acall is handled based on the combination of the originating COS fromanother trunk group and the terminating COS from the present trunkgroup. Based on a combination of this field and the originating COS thecall will be handled differently. For example, the call may be denied,route advanced, or otherwise processed.

Call control provides an index to a specific trunk group level trafficmanagement control. Valid entries include normal for no control applied,skip control, applied wide area telecommunications service (WATS)reroute functionality, cancel control, reroute control overflow, andreroute immediate control. The next function points to the next table,and the next label points to an entry or a range of entries in thattable.

FIG. 15 depicts an example of a carrier table. The carrier label is thekey to enter the table. The carrier identification (ID) specifies thecarrier to be used by the calling party. The carrier selection entryidentifies how the caller specifies the carrier. For example, itidentifies whether the caller dialed a prefix digit or whether thecaller was pre-subscribed. The carrier selection is used to determinehow the call will be routed. The next function points to the next table,and the next label defines an area in that table for further callprocessing.

FIG. 16 depicts an example of an exception table. The exception label isused as a key to enter the table. The calling party's category entryspecifies how to process a call from an ordinary subscriber, an unknownsubscriber, or a test phone. The called number nature of addressdifferentiates between 0+ calls, 1+ calls, test calls, local routingnumber (LRN) calls, and international calls. For example, internationalcalls might be routed to a pre-selected international carrier. Thecalled number “digits from” and “digits to” focus further processingunique to a defined range of called numbers. The “digits from” field isa decimal number ranging from 1-15 digits. It can be any length and, iffilled with less than 15 digits, is filled with 0s for the remainingdigits. The “digits to” is a decimal number ranging from 1-15 digits. Itcan be any length and, if filled with less than 15 digits, is filledwith 9s for the remaining digits. The next function and next labelentries point to the next table and the next entry within that table forthe next routing function.

FIG. 17 depicts an example of the originating line information (OLI)table. The OLI label is used as a key to enter the table from a priornext function operation. The originating line information entryspecifies the information digits that are being transmitted from acarrier. Different calls are differentiated based on the informationdigits. For example, the information digits may identify an ordinarysubscriber, a multi-party line, N00 service, prison service, cellularservice, or private pay station. The next function and next labelentries point to the next table and the area within that table for thenext routing function.

FIG. 18 depicts an example of an automatic number identification (ANI)table. The ANI label is used as a key to enter the table from a priornext option. The charge calling party number “digits from” and “digitsto” focus further processing unique to ANI within a given range. Theseentries are looked at to determine if the incoming calling number fallswithin the “digits from” and “digits to” fields. The time zone labelindicates the entry in the time zone table that should be used whencomputing the local date and time. The time zone label overrides thetime zone information from the trunk group table 806.

The customer information entry specifies further customer information onthe originating side for call process routing. The echo cancellation(EC) information field specifies whether or not to apply echocancellation to the associated ANI. The queue entry identifies whetheror not queuing is available to the calling party if the called party isbusy. Queuing timers determine the length of time that a call can bequeued. The treatment label defines how a call will be treated based oninformation in the treatment table. For example, the treatment label maysend a call to a specific recording based on a dialed number. The nextfunction and next label point to the next table and an area within thattable for further call processing.

FIG. 19 depicts an example of a called number screening table. Thecalled number screening label is used as a key to enter the table. Thecalled number nature of address indicates the type of dialed number, forexample, national versus international. The nature of address entryallows the call process to route a call differently based on the natureof address value provided. The “digits from” and “digits to” entriesfocus further processing unique to a range of called numbers. The“digits from” and “digits to” columns both contain called number digits,such as NPA-NXX ranges, that may contain ported numbers and are checkedfor an LRN. This table serves as the trigger detection point (TDP) foran LNP TCAP when, for example, NPA-NXXs of donor switches that have hadsubscribers port their numbers are data filled in the “digits from” and“digits to” fields. The delete digits field provides the number ofdigits to be deleted from the called number before processing continues.The next function and next label point to the next table and the areawithin that table for further call processing.

FIG. 20 depicts an example of a called number table. The called numberlabel is used as a key to enter the table. The called number nature ofaddress entry indicates the type of dialed number, for example, nationalversus international. The “digits from” and “digits to” entries focusfurther processing unique to a range of numbers, including LRNs. Thenext function and next label point to a next table and the area withinthat table used for further call processing.

FIG. 21 depicts an example of a day of year table. The day of year labelis used as a key to enter the table. The date field indicates the localdate which is applicable to the action to be taken during the processingof this table. The next function and next label identify the table andthe area within that table for further call processing.

FIG. 22 depicts an example of a day of week table. The day of week labelis a key that is used to enter the table. The “day from” field indicatesthe local day of the week on which the action to be taken by this tableline entry is to start. The “day to” field indicates the local day ofthe week on which the action to be taken by this table line entry is toend. The next function and next label identify the next table and thearea within that table for further call processing.

FIG. 23 depicts an example of a time of day table. The time of day labelis used as a key to enter the table from a prior next function. The“time from” entry indicates the local time on which an action to betaken is to start. The “time to” field indicates the local time justbefore which the action to be taken is to stop. The next function andnext label entries identify the next table and the area within thattable for further call processing.

FIG. 24 depicts an example of a time zone table. The time zone label isused as a key to enter the table and to process an entry so that acustomer's local date and time may be computed. The coordinateduniversal time (UTC) indicates a standard offset of this time zone fromthe UTC. The UTC is also known as Greenwich mean time, GMT, or Zulu. TheUTC should be positive for time zones east of Greenwich, such as Europeand Asia, and negative for time zones west of Greenwich, such as NorthAmerica. The daylight savings entry indicates whether daylight savingstime is used during the summer in this time zone.

FIG. 25 depicts an example of a routing table. The routing label is usedas a key to enter the table from a prior next function. The route numberspecifies a route within a route list. Call processing will process theroute choices for a given route label in the order indicated by theroute numbers. The next function and next label identify the next tableand the area within that table for further call processing. The signalroute label is associated with the next action to be taken by callprocessing for this call. The signal route label provides the index toaccess the message mapping label. The signal route label is used inorder to modify parameter data fields in a signaling message that isbeing propagated to a next switch or a next call processor.

FIG. 26 depicts an example of a trunk group class of service (COS)table. The originating trunk COS label and the terminating trunk COSlabel are used as keys to enter the table and define call processing.The next function identifies the next action that will be taken by callprocessing for this call. Valid entries in the next function column maybe continued, treat, route advanced, or routing. Based on these entriescall processing may continue using the current trunk group, send thecalls to treatment, skip the current trunk group and the routing tableand go to the next trunk group on the list, or send the call to adifferent label in the routing table. The next label entry is a pointerthat defines the trunk circuit group that the next function will use toprocess the call. This field is ignored when the next function iscontinued or route advanced.

FIG. 27 depicts an example of a treatment table. The treatment label isa key that is used to enter the table. The treatment label is adesignation in a call process that determines the disposition of thecall. The error/cause label correspond either to internally generatederror conditions and call processing or to incoming release causevalues. For each treatment label, there will be a set of errorconditions and cause values that will be associated with a series oflabels for the call processing error conditions and a series of labelsfor all incoming release message cause values. The next function andnext label point to the next table and the area within that table forfurther call processing.

FIG. 28 depicts an example of an outgoing release table. The outgoingrelease label is used as a key to enter the table for processing. Theoutgoing cause value location identifies the type of network to be used.For example, the location entry may specify a local or remote network ora private, transit, or international network. The coding standardidentifies the standard as an International Telecommunications Union(ITU) standard or an American National Standards Institute (ANSI)standard. The cause value designates error, maintenance, ornon-connection processes.

FIG. 29 depicts an example of a percent control table. The percent labelis used as a key to enter the table. The control percentage specifiesthe percentage of incoming calls that will be affected by the control.The control next function allows attempts for call connection to berouted to another table during call processing. The control next labelpoints to an area within that table for further call processing. Thepassed next function allows only incoming attempts to be routed toanother table. The next label points to an area in that table forfurther call processing.

FIG. 30 depicts an example of a call rate table. The call rate label isused as a key to enter the table. The call rate specifies the number ofcalls that will be passed by the control on or for completion. Callprocessing will use this information to determine if the incoming callnumber falls within this control. The control next function allows ablocked call attempt to be routed to another table. The control nextlabel is a pointer that defines the area in the next table for furthercall processing. The passed next function allows only an incoming callattempt to be rerouted to another table. The passed next function is apointer that defines an area in that table for further call processing.

FIG. 31 depicts an example of a database services table. The databaseservices label is used as a key to enter the table. The service typedetermines the type of logic that is applied when building andresponding to database queries. Service types include local numberportability and N00 number translation. The signaling connection controlpart (SCCP) label identifies a location within an SCCP table for furthercall processing. The transaction capabilities application part (TCAP)label identifies a location within a TCAP table for further processing.The next function identifies the location for the next routing functionbased on information contained in the database services table as well asinformation received from a database query. The next label entryspecifies an area within the table identified in the next function forfurther processing.

FIG. 32A depicts an example of a signaling connection control part(SCCP) table. The SCCP label is used as a key to enter the field. Themessage type entry identifies the type of message that will be sent inthe SCCP message. Message types include Unitdata messages and ExtendedUnitdata messages. The protocol class entry indicates the type ofprotocol class that will be used for the message specified in themessage type field. The protocol class is used for connectionlesstransactions to determine whether messages are discarded or returnedupon an error condition. The message handling field identifies how thedestination call processor or switch is to handle the SCCP message if itis received with errors. This field will designate that the message isto be discarded or returned. The hop counter entry denotes the number ofnodes through which the SCCP message can route before the message isreturned with an error condition. The segmentation entry denotes whetheror not this SCCP message will use segmentation and send more than oneSCCP message to the destination.

FIG. 32B is a continuation of FIG. 32A for the SCCP table. Theintermediate signaling network identification (ISNI) fields allow theSCCP message to traverse different networks in order to reach a desirednode. The ISNI type identifies the type of ISNI message format that willbe used for this SCCP message. The route indicator subfield identifieswhether or not this SCCP message requires a special type of routing togo through other networks. The mark identification subfield identifieswhether or not network identification will be used for this SCCPmessage. The label subfield identifies a unique address into the ISNItable when the route indicator sub-field is set to “constrained” and themark identification subfield is set to “yes.”

FIG. 32C is a continuation of FIG. 32B for the SCCP table. FIG. 32Cidentifies the called party address field and subfields to provideinformation on how to route this SCCP message. The address indicatorsubsystem number (SSN) indicates whether or not a subsystem number willbe included in the called party address. The point code entry indicateswhether or not a point code will be included in the calling partyaddress. The global title indicator subfield identifies whether or not aglobal title translation will be used to route the SCCP message. If aglobal title translation is chosen, this subfield also identifies thetype. The routing indicator subfield identifies the elements that willbe used to route the message. Valid entries include global title andpoint code. The national/international subfield identifies whether theSCCP message will use national or international routing and set up.

The subsystem number field identifies the subsystem number for the SCCPmessage. The point code number indicates the destination point code towhich the SCCP message will be routed. This field will be used forrouting messages that do not require SCCP translation.

The global title translation field allows intermediate nodes totranslate SCCP messages so that the messages can be routed to thecorrect destination with the correct point code. The global titletranslation type entry directs the SCCP message to the correct globaltitle translation function. The encode scheme identifies how the addresstype will be encoded. The number plan subfield identifies the numberingplan that will be sent to the destination node. The address typesubfield will identify which address type to use for address digits andthe SCCP routing through the network.

FIG. 32D is a continuation of FIG. 32C for the SCCP table. FIG. 32Didentifies the calling party address field which contains the routinginformation that the destination database uses to retain the SCCPmessage. The address indicator subsystem number (SSN) indicates whetheror not a subsystem number will be included in the called party address.The point code subfield indicates whether or not a point code will beincluded in the calling party address. The global title indicatorsubfield identifies whether or not global title translation will be usedto route the SCCP message. The routing indicator subfield identifieswhich elements will be used throughout the message. This field mayinclude global title elements or point code elements. Thenational/international subfield identifies whether the SCCP will usenational or international routing and set up.

The subsystem number identifies a subsystem number for the SCCP message.The point code number field indicates the destination point code towhich the SCCP message will be routed. The global title translationsallow the intermediate nodes to translate SCCP messages and to route themessages to the correct destination. The global title translation typedirects the SCCP message to the correct global title translationfunction. The encode scheme identifies how the address type will beencoded. The number plan identifies the number plan that will be sent tothe destination node. The address type subfield identifies the addresstype to use for address digits in the SCCP routing through the network.

FIG. 33 depicts an example of an intermediate signaling networkidentification (ISNI) table. The ISNI table contains a list of networksthat will be used for routing SCCP messages to the destination node. TheISNI label is used as a key to enter the table. The network fields 1-16identify the network number of up to 16 networks that may be used forrouting the SCCP message.

FIG. 34 depicts an example of a transaction capabilities applicationpart (TCAP) table. The TCAP label is used as a key to enter the table.The TCAP type identifies the type of the TCAP that will be constructed.The TCAP types include advanced intelligent network (AIN) anddistributed intelligent network architecture (DINA). The tag classindicates whether the message will use a common or proprietarystructure. The package type field identifies the package type that willbe used in the transaction portion of the TCAP message. The componenttype field identifies the component type that will be used in thecomponent portion of the TCAP message. The message type field identifiesthe type of TCAP message. Message types include variable optionsdepending on whether they are AIN message types or DINA message types.

FIG. 35 depicts an example of an external echo canceller table. The echocanceller type specifies if an external echo canceller is being used onthe circuit and, if so, the type of echo canceller. The echo cancellerlabel points to a location in the controllable ATM matrix table forfurther call processing. The RS-232 address is the address of the RS-232interface that is used to communicate with the external echo canceller.The module entry is the module number of the external echo canceller.

FIG. 36 depicts an example of an interworking unit interface table. Theinterworking unit (IWU) is a key that is used to enter the table. TheIWU identification (ID) identifies which interworking unit is beingaddressed. The internet protocol (IP) sockets 1-4 specify the IP socketaddress of any of the four connections to the interworking unit.

FIG. 37 depicts an example of a controllable ATM matrix (CAM) interfacetable. The CAM interface label is used as a key to enter the table. TheCAM label indicates which CAM contains the interface. The logicalinterface entry specifies a logical interface or port number in the CAM.

FIG. 38 depicts an example of a controllable ATM matrix (CAM) table. TheCAM label is used as a key to enter the table. The CAM type indicatesthe type of CAM control protocol. The CAM address identifies the addressof the CAM.

FIG. 39A depicts an example of a call processor or switch site officetable. The office CLLI name identifies a CLLI of the associated officefor the call processor or switch. The call processor or switch site nodeidentifier (ID) specifies the call processor or switch node identifier.The call processor or switch origination identifier (ID) specifies acall processor or switch origination identifier. The software identifier(ID) specifies a software release identifier. The call processoridentifier (ID) specifies the call processor or switch identifier thatis sent to the inter working units.

FIG. 39B is a continuation of FIG. 39A of the call processor or switchsite office table. The automatic congestion control (ACC) specifieswhether ACC is enabled or disabled. The automatic congestion controllevel (ACL) 1 onset identifies an onset percentage value of a firstbuffer utilization. The ACL 1 abate entry specifies an abatementpercentage of utilization for a first buffer. The ACL 2 onset entryspecifies an onset level for a second buffer. The ACL 2 abate entryspecifies an abatement level percentage of buffer utilization for asecond buffer. The ACL 3 onset entry specifies an onset level percentageof buffer utilization for a third buffer. The ACL 3 abate entryspecifies an abatement level percentage of buffer utilization for athird buffer.

FIG. 39C is a continuation of FIG. 39B for the call processor or switchsite office table. The maximum trunks for the off hook queuing (maxtrunks OHQ) specifies a maximum number of trunk groups that can have theoff hook queuing enabled. The OHQ timer one (TQ1) entry specifies thenumber of milliseconds for the off hook timer number one. The OHQ timertwo (TQ2) entry specifies the number of seconds for the off hook timernumber two. The ring no answer timer specifies the number of seconds forthe ring no answer timer. The billing active entry specifies whetherECDBs are being sent to the call processing control system (CPCS). Thenetwork management (NWM) allow entry identifies whether or not aselective trunk reservation and group control are allowed or disallowed.The billing failure free call entry specifies if a call will not bebilled if the billing process is unavailable. The billing failure freecall will either be enabled for free calls or disabled so that there areno free calls.

FIG. 39D is a continuation of FIG. 39C for the call processor or switchsite office table. The maximum (max) hop counts identifies the number ofcall processor or switch hops that may be made in a single call. Themaximum (max) table lookups identifies the number of table lookups thatmay performed for a single call. This value is used to detect loops inrouting tables.

FIGS. 40A-40B depict an example of an advanced intelligent network (AIN)event parameters table. The AIN event parameters table has two columns.The first identifies the parameters that will be included in theparameters portion of the TCAP event message. The second entry mayinclude information for analysis.

FIG. 41 depicts an example of a message mapping table. This table allowsthe call processor to alter information in outgoing messages. Themessage type field is used as a key to enter the table and representsthe outgoing standard message type. The parameters entry is a pertinentparameter within the outgoing message. The indexes point to variousentries in the trunk group and determine if parameters are passedunchanged, omitted, or modified in the outgoing messages.

Operation

It will be appreciated that the LNP cache 108 can be located in thesignaling interface 704, the CPCS 706, or the call processor 708.Preferably, the LNP cache 108 is located in the call processor 708.

When the LNP cache 108 is located in the call processor 708, aconsiderable savings in processing time and processing resources issaved because the call processor does not need to transmit a controlmessage to the LNP cache. Instead, when the LNP cache 108 is locatedwith the call processor 708, the call processor can access the LNP cacheas needed as quickly as it accesses any other memory location.Therefore, control messages and call signaling queries are not requiredto but built, transmitted, or passed through the MTP levels 1 and 2. Inaddition, control messages and call signaling for responses will nothave to be received and processed for removal of header information andpassage through the MTP levels 1 and 2.

In addition, the maintenance, performance, and accounting systemsdescribed above can be co-located with the LNP cache, such as in thecall processor 708. Alternately, the maintenance, performance, andaccounting systems of the LNP cache 108 can be located in the CPCS 706.

The operation of the LNP cache 108 in the system of FIGS. 7-41 is thesame as the description of the operation of the LNP cache in the systemof FIGS. 1 and 2. However, in addition to the operation of FIGS. 1 and2, the signaling interface 704, the CPCS 706, and the call processor 708will perform the functions described above.

In addition, the call signaling with its associated parameters and theLNP information with its associated elements are processed with routinglogic and routing tables in the call processor 708 as described above.The call processor 708 can be configured to access the LNP cache 108while processing the call signaling and the LNP parameters with therouting tables of FIGS. 8-41. That is, the routing logic processes thecall signaling parameters, the routing tables process the call signalingparameters and trigger access to the LNP cache 108 if needed. Therouting tables further process any LNP information and call signalingparameter to determine new call signaling parameters and route selectioninformation. The new call signaling parameters and the route selectioninformation is processed by the routing logic before new call signalingis created and transmitted and before control messages are transmitted.

For example, the routing tables can process the call signalingparameters and the LNP parameters, and the access to the LNP cache 108can be triggered from the routing tables, such as the called numberscreening table 816 or the called number table 818. Preferably, theaccess to the LNP cache is triggered from the called number screeningtable 816.

In the event that the LNP cache 108 is triggered by the routing tablesof the call processor 708 and a match is not found for the DN, then aquery is triggered by the routing tables, out the signaling interface704, and to the LNP SCP 112. The response is received by the signalinginterface 704, and the call signaling parameters and the LNP informationelements are transmitted to the call processor 708 for processing by therouting tables.

The query to the LNP SCP 112 can be triggered from the routing tables,such as the called number screening table 816, the called number table818, or the exception table 810. Preferably, the called number screeningtable 816 triggers the query.

The routing tables further processes any LNP information and callsignaling parameters to determine new call signaling parameters androute selection information. The new call signaling parameters and theroute selection information is processed by the routing logic before newcall signaling is created and transmitted and before control messagesare transmitted.

Also, the call processor 708 can be configured to access the LNP cache108 to obtain the LNP information, if existent, prior to processing thecall signaling and the LNP parameters with the routing tables of FIGS.8-41. That is, the routing logic processes the call signalingparameters, accesses the LNP cache 108 if needed, further processes anyLNP information and call signaling parameters, and then processes thecall signaling and the LNP information with the routing tables of FIGS.8-41. The new call signaling parameters and the route selectioninformation is again processed by the routing logic before new callsignaling is created and transmitted and before control messages aretransmitted.

In the event that the LNP cache 108 is accessed by the routing logic ofthe call processor 708 and a match is not found for the DN, then a queryis initiated by the routing logic, out the signaling interface 704, andto the LNP SCP 112. The response is received by the signaling interface704, and the call signaling parameters and the LNP information elementsare transmitted to the call processor 708 for processing by the routinglogic. The routing logic further processes any LNP information and callsignaling parameters, and then the call signaling parameters and the LNPinformation are processed with the routing tables. The new callsignaling parameters and the route selection information is againprocessed by the routing logic before new call signaling is created andtransmitted and before control messages are transmitted. Other methodsmay be used.

Those skilled in the art will appreciate that variations from thespecific embodiments disclosed above are contemplated by the invention.The invention should not be restricted to the above embodiments, butshould be measured by the following claims.

1. A method of operating a call routing system comprising a signalingprocessor having an internal cache memory, the method comprising:receiving a first signaling message for a call into the signalingprocessor; searching the internal cache memory with a called number fromthe first signaling message to determine one of: 1) the called numberhas an associated location route number, 2) the called number does nothave the associated location route number, and 3) a query is required;if the query is required, transferring the query from the signalingprocessor and receiving a response into the signaling processor thatindicates one of: 1) the called number has the associated location routenumber, and 2) the called number does not have the associated locationroute number; if the called number has the associated location routenumber, then processing the location route number to select a connectionfor the call and transferring a second signaling message from thesignaling processor indicating the selected connection and the locationroute number; if the called number does not have the associated locationroute number, then processing the called number to select the connectionfor the call and transferring the second signaling message from thesignaling processor indicating the selected connection and the callednumber; and if the response is received, updating the internal cachememory to indicate one of: 1) the called number has the associatedlocation route number, and 2) the called number does not have theassociated location route number.
 2. The method of claim 1 furthercomprising deleting an entry for the called number in the internal cachememory if an error message is received for the call.
 3. The method ofclaim 2 wherein the error message comprises a Signaling System SevenRelease Message.
 4. The method of claim 1 further comprising deleting anentry for the called number in the internal cache memory if the entryhas not been accessed for a specified time period.
 5. The method ofclaim 1 further comprising deleting an entry for the called number inthe internal cache memory if the entry is older than other called numberentries.
 6. The method of claim 1 further comprising deleting an entryfor the called number in the internal cache memory if the entry is lessused than other called number entries.
 7. The method of claim 1 whereinreceiving the first signaling message comprises receiving the firstsignaling message over an Internet Protocol link.
 8. The method of claim1 wherein the second signaling message comprises a Signaling SystemSeven Initial Address Message
 9. The method of claim 1 wherein the callrouting system further comprises an interworking unit, the methodfurther comprising: transferring a control message indicating theselected connection from the signaling processor and receiving thecontrol message in the interworking unit; receiving a user communicationfor the call in a packet format and converting the user communicationinto a Time Division Multiplex (TDM) format; transferring the usercommunication in the TDM format over the selected connection.
 10. Themethod of claim 9 wherein the selected connection comprises a DS0connection.
 11. A call routing system comprising: a signaling processor;and an internal cache memory within the signaling processor; wherein thesignaling processor is configured to receive a first signaling messagefor a call, search the internal cache memory with a called number fromthe first signaling message to determine one of: 1) the called numberhas an associated location route number, 2) the called number does nothave the associated location route number, and 3) a query is required;wherein the signaling processor is configured, if the query is required,to transfer the query and receive a response that indicates one of: 1)the called number has the associated location route number, and 2) thecalled number does not have the associated location route number;wherein the signaling processor is configured, if the called number hasthe associated location route number, to process the location routenumber to select a connection for the call and transfer a secondsignaling message indicating the selected connection and the locationroute number; wherein the signaling processor is configured, if thecalled number does not have the associated location route number, toprocess the called number to select the connection for the call andtransfer the second signaling message indicating the selected connectionand the called number; and wherein the signaling processor isconfigured, if the response is received, to update the internal cachememory to indicate one of: 1) the called number has the associatedlocation route number, and 2) the called number does not have theassociated location route number.
 12. The call routing system of claim11 wherein the signaling processor is configured to delete an entry forthe called number in the internal cache memory if an error message isreceived for the call.
 13. The call routing system of claim 12 whereinthe error message comprises a Signaling System Seven Release Message.14. The call routing system of claim 11 wherein the signaling processoris configured to delete an entry for the called number in the internalcache memory if the entry has not been accessed for a specified timeperiod.
 15. The call routing system of claim 11 wherein the signalingprocessor is configured to delete an entry for the called number in theinternal cache memory if the entry is older than other called numberentries.
 16. The call routing system of claim 11 wherein the signalingprocessor is configured to delete an entry for the called number in theinternal cache memory if the entry is less used than other called numberentries.
 17. The call routing system of claim 11 wherein the signalingprocessor is configured to receive the first signaling message over anInternet Protocol link.
 18. The call routing system of claim 11 whereinthe second signaling message comprises a Signaling System Seven InitialAddress Message
 19. The call routing system of claim 11 wherein: thesignaling processor is configured to transfer a control messageindicating the selected connection; and the call routing system furthercomprises an interworking unit configured to receive a usercommunication for the call in a packet format, convert the usercommunication into a Time Division Multiplex (TDM) format, and transferthe user communication in the TDM format over the selected connection.20. The method of claim 19 wherein the selected connection comprises aDS0 connection.